Project

General

Profile

Bug #11673

Inconsistent timezone behaviour (Time.parse and DateTime.parse)

Added by Arnvald (Grzegorz Witek) over 3 years ago. Updated 1 day ago.

Status:
Closed
Priority:
Normal
Target version:
-
ruby -v:
2.3.0dev (2015-05-07 trunk 50439)
[ruby-core:71432]

Description

The source of this bug is here: https://github.com/rails/rails/issues/22171#issuecomment-155090007

behaviour between DateTime.parse and Time.parse is inconsistent when it comes to parsing ISO8601 without letter "Z"

irb(main):003:0> time = "2015-11-20T03:05:30"
=> "2015-11-20T03:05:30"
irb(main):005:0> Time.parse(time)
=> 2015-11-20 03:05:30 +0800
irb(main):007:0> DateTime.parse(time)
=> #<DateTime: 2015-11-20T03:05:30+00:00 ((2457347j,11130s,0n),+0s,2299161j)>

Time.parse returns time in local timezone, while DateTime.parse returns it in UTC. According to specification, without letter "Z" in the end, the time should be in local timezone (so Time class is correct and DateTime is wrong)

Is this a bug or for some reason this is intended behaviour?

History

Updated by nobu (Nobuyoshi Nakada) over 3 years ago

  • Description updated (diff)
  • Status changed from Open to Assigned
  • Assignee set to tadf (tadayoshi funaba)

Updated by jeremyevans0 (Jeremy Evans) 1 day ago

  • Status changed from Assigned to Closed

This is expected behavior. Without a timezone offset specified, Time assumes local time and DateTime assumes UTC.

Also available in: Atom PDF