Issue #8608 has been updated by tadf (tadayoshi funaba).

Assignee changed from tadf (tadayoshi funaba) to nagachika (Tomoyuki Chikanaga)

backport r41871.
----------------------------------------
Bug #8608: Inconsistent parse of DateTime zone specification with seconds
https://bugs.ruby-lang.org/issues/8608#change-40384

Author: teleological (Riley Lynch)
Status: Assigned
Priority: Normal
Assignee: nagachika (Tomoyuki Chikanaga)
Category: ext
Target version: 
ruby -v: ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.2.1]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN


When a time zone specification has a single-digit hour and includes minutes and seconds without colons, the minutes offset is overwritten by the seconds offset. In this example +3:30 is incorrectly parsed as +3:00:

  DateTime.parse('6 Nov 1973 18:45 +33000') # => #<DateTime: 1973-11-06T18:45:00+03:00 ((2441993j,56700s,0n),+10800s,2299161j)>

This defect is not present when the hour is specified by two digits:

  DateTime.parse('7 Nov 1973 04:00 +124500') # => #<DateTime: 1973-11-07T04:00:00+12:45 ((2441993j,54900s,0n),+45900s,2299161j)>

Attached is a patch which corrects this issue.


-- 
http://bugs.ruby-lang.org/