Project

General

Profile

Actions

Bug #11673

closed

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

Added by Arnvald (Grzegorz Witek) over 8 years ago. Updated over 4 years ago.

Status:
Closed
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?

Updated by nobu (Nobuyoshi Nakada) over 8 years ago

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

Updated by jeremyevans0 (Jeremy Evans) over 4 years ago

  • Status changed from Assigned to Closed

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

Actions

Also available in: Atom PDF

Like0
Like0Like0