0

我有以下 JSON:

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

解析它,产生以下日期:

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

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

编辑:我正在使用带有 ActiveSupport 3.2.13 的 Rails 3.2.13。我正在尝试使用以下方法解析字符串:

Time.parse(string)

但是,我注意到,如果我用以下方式解析它:

DateTime.parse(string)

我得到了正确的偏移量。

4

1 回答 1

1

我没有资格回答这个问题,因为我不使用 Ruby。也就是说,仅查看标准库,似乎原因是Time.parse包含对 的调用localtime它将解析结果转换为您的本地时区。

我怀疑您实际上是在 GMT +02 执行此代码。您可以使用Time.new. 我在格林威治标准时间-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
于 2014-05-17T01:57:19.593 回答