我仍然對如何在Ruby中使用DateTime感到困惑。我想在數據庫中存儲GMT,至少我認爲我會的。但是,如何創建可用的本地化日期時間呢?Ruby DateTime.new混淆
date = Date.new(2012, 11, 24)
=> #<Date: 2012-11-24 ((2456256j,0s,0n),+0s,2299161j)>
new_appt = DateTime.new(date.year, date.month, date.day, 10, 0, 0)
=> #<DateTime: 2012-11-24T10:00:00+00:00 ((2456256j,36000s,0n),+0s,2299161j)>
此DateTime對象的GMT偏移量爲+00:00。我希望它是-07:00或-08:00,具體取決於給定日期是否遵守夏令時。我可以添加最後一個參數(+7
或+8
)但是如何計算?
有沒有辦法告訴給定日期什麼時區偏移量(或將),並將其納入DateTime.new對象中,以便它可以正確存儲(並檢索)?
你使用的是Rails還是Ruby?另外,您需要使用「給定日期」來計算來自哪個偏移量? – messick
在格林威治時間有沒有商業理由要存儲?我建議讓所有系統都以UTC來說/存儲,並且只在需要人類可讀的時候才進行任何轉換。在一個視圖。 – Rym
@Kevin我同意你評論的後半部分,但不是格林威治標準時間只是UTC的一種較舊的方式? – sawa