2015-09-14 45 views
0

我哪裏有時間獲取保存1小時就一個問題:UTC時間1小時早期的Rails

:time => "6:00AM".to_time 

這樣可以節省爲"13:00 UTC"當它應該是"14:00 UTC"

我已經設置當地時間PST:

config.time_zone = 'Pacific Time (US & Canada)' 

目前的解決方案:

基於@ HD1的解釋:

if Time.zone.now.dst? 
    :time => "6:00AM".to_time + 1.hour 
else 
    :time => "6:00AM".to_time 
end 

請讓我知道是否有更直接的解決方案。

回答

1

它幾乎看起來像你遇到夏令時問題。 Rails時間擴展可以讓你確定你的當前偏移量,如Time.zone.now.utc_offset和Time#dst?告訴你,如果是夏令時和這兩種情況,您可以有條件地減去額外的小時(3600秒)。希望有所幫助。如果它沒有留下評論,我很樂意爲解決方案挖掘Rails源代碼。

+0

謝謝 - 我將如何使用偏移量來正確保存時間(上面的更新代碼)。我應該添加一個if語句並手動減去小時數? – Onichan

+0

以下是我最終做的事情(請讓我知道這是否正確):'如果Time.zone.now.dst?'如果目前是DST,那麼'+ 1.hour'。否則,不要加1小時。 – Onichan