0

我有以下的JSON:为什么iso8601日期分析的偏移量为+2?

{"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) 

我得到一个正确的偏移量。

+0

什么是您的时区? –

+0

欧洲/布加勒斯特,+03:00 – Geo

+0

而服务器或浏览器或任何你正在使用的解析?看起来它的输出格式设置为不同的时区。 –

回答

1

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

我怀疑你是在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 
相关问题