为什么这个iso8601日期解析偏移量为+2?

时间:2013-08-26 17:28:48

标签: ruby-on-rails timezone activesupport iso8601 datetimeoffset

我有以下JSON:

{"dtime" : "2020-08-26T15:30:00+03:00"}

解析它,产生以下日期:

=> 2020-08-26 14:30:00 +0200

为什么它有+2偏移而不是+3?

编辑:我正在使用Rails 3.2.13,使用ActiveSupport 3.2.13。我正在尝试使用:

来解析字符串
Time.parse(string)

但是,我注意到,如果我解析它:

DateTime.parse(string)

我得到了正确的偏移。

1 个答案:

答案 0 :(得分:1)

我没有业务回答这个问题,因为我不使用Ruby。也就是说,只看标准库,原因似乎Time.parse包括calllocaltime,它将解析结果转换为您的本地时区。

我怀疑你实际上是在GMT + 02中执行此代码。您可以查看Time.new。我正在参加GMT -07。

>> Time.new
=> 2014-05-16 18:51:00 -0700

您可以将结果传递到localtime

,将结果转换为任何时区
>> require 'Time'
=> true
>> t = Time.parse("2020-08-26T15:30:00+03:00")
=> 2020-08-26 05:30:00 -0700
>> t.localtime("+03:00")
=> 2020-08-26 15:30:00 +0300