Backport #8608

Inconsistent parse of DateTime zone specification with seconds

Added by teleological (Riley Lynch) about 7 years ago. Updated almost 7 years ago.



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') # => #

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

DateTime.parse('7 Nov 1973 04:00 +124500') # => #

Attached is a patch which corrects this issue.


tz_sec.patch (439 Bytes) tz_sec.patch Patch for trunk@41825 (c51615963) teleological (Riley Lynch), 07/08/2013 12:31 AM

Updated by nagachika (Tomoyuki Chikanaga) about 7 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) about 7 years ago

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

backport r41871.


Updated by nagachika (Tomoyuki Chikanaga) almost 7 years ago

  • Tracker changed from Bug to Backport
  • Project changed from Ruby master to Backport200
  • Category deleted (ext)

Updated by nagachika (Tomoyuki Chikanaga) almost 7 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].

Also available in: Atom PDF