Backport #8608
closedInconsistent parse of DateTime zone specification with seconds
Description
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.
Files
Updated by nagachika (Tomoyuki Chikanaga) over 11 years ago
- Status changed from Open to Assigned
- Assignee set to tadf (tadayoshi funaba)
The patch seems quite simple and reasonable.
funaba-san, could you review the patch?
Updated by tadf (tadayoshi funaba) over 11 years ago
- Assignee changed from tadf (tadayoshi funaba) to nagachika (Tomoyuki Chikanaga)
backport r41871.
Updated by nagachika (Tomoyuki Chikanaga) over 11 years ago
- Tracker changed from Bug to Backport
- Project changed from Ruby master to Backport200
- Category deleted (
ext)
Updated by nagachika (Tomoyuki Chikanaga) over 11 years ago
- Status changed from Assigned to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r41951.
Riley, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
merge revision(s) 41871: [Backport #8608]
* ext/date/date_parse.c (date_zone_to_diff): [ruby-core:55831].