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 
相關問題