Project

General

Profile

Actions

Bug #14790

closed

DateTime.iso8601 parses incorrect ISO8601

Added by Quintasan (Michał Zając) almost 6 years ago. Updated over 5 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
2.4.2p198
[ruby-core:87276]

Description

I noticed it today when migrating to Time in my library but DateTime somehow parses incorrect ISO8601 dates. Technically that's a feature but I believe this behaviour is incorrect. Time#iso8601 behaves correctly in this case.

Steps to reproduce

require 'time'
date = "2018-05-17T12:17:11+0200"
DateTime.iso8601(date) # => #<DateTime: 2018-05-17T12:17:11+02:00 ((2458256j,37031s,0n),+7200s,2299161j)>
Time.iso8601(date) # ArgumentError: invalid date: "2018-05-17T12:17:11+0200"

Updated by Hanmac (Hans Mackowiak) almost 6 years ago

you mean the offset right?

https://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators says that "±hhmm" is valid too in iso8601

so i think the bug is more in Time because the offset should be valid?

Time itself does print it as "+0200" on inspect

Actions #2

Updated by nobu (Nobuyoshi Nakada) almost 6 years ago

  • Status changed from Open to Closed

Applied in changeset trunk|r63512.


time.rb: fix parsing time zone in iso8601

Actions #3

Updated by nobu (Nobuyoshi Nakada) almost 6 years ago

  • Backport changed from 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN to 2.3: REQUIRED, 2.4: REQUIRED, 2.5: REQUIRED

Updated by Quintasan (Michał Zając) almost 6 years ago

Yes, you are right. It was a bug after all but not in the way I originally thought :D.

Hanmac (Hans Mackowiak) wrote:

you mean the offset right?

https://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators says that "±hhmm" is valid too in iso8601

so i think the bug is more in Time because the offset should be valid?

Time itself does print it as "+0200" on inspect

Updated by usa (Usaku NAKAMURA) over 5 years ago

  • Backport changed from 2.3: REQUIRED, 2.4: REQUIRED, 2.5: REQUIRED to 2.3: REQUIRED, 2.4: DONE, 2.5: REQUIRED

ruby_2_4 r64148 merged revision(s) 63512,63514.

Updated by nagachika (Tomoyuki Chikanaga) over 5 years ago

  • Backport changed from 2.3: REQUIRED, 2.4: DONE, 2.5: REQUIRED to 2.3: REQUIRED, 2.4: DONE, 2.5: DONE

ruby_2_5 r64431 merged revision(s) 63512,63514.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0