2012-01-04 91 views
3

我正在使用Rails 2.3.3和Postgresql。Rails ActiveRecord不將時間轉換爲UTC,但將未轉換的時間保存爲UTC

在我的應用程序environment.rb文件中,我設置了config.time_zone = 'UTC',並在我的before_filter中設置了Time.zone = current_user.time_zone

我面臨的問題是獲取保存的時間在用戶time_zone中,但在數據庫中保存爲UTC。

例如,如果我選擇12:00 am IST(即+ 530 IST),它將被存儲爲UTC時間12:00。然而,在本地,配置似乎按預期工作,並且在獲取數據時將時間轉換爲用戶time_zone,因此它將獲得530小時。

希望對此有所幫助。

感謝

+0

所以問題是,你在窗體中選擇了一個時間,並且確切的時間被保存爲UTC,但你期望它被保存在IST時間偏移量中? – 2012-01-04 13:26:48

+0

不,我希望時間轉換爲UTC然後保存。這裏節省的時間沒有被轉換爲UTC時間。 – Sid 2012-01-04 14:32:44

+0

你在本地工作是什麼意思?適用於您的開發機器,但不適用於生產? – 2012-01-04 14:38:06

回答

4

你使用時間或日期作爲數據庫列類型的對象?

This recent (and very similar) question to yours可以通過改變時間到日期時間的類型來解決。

+2

解決方案是使用Time.zone.parse(event.start_date),我沒有這樣做。我認爲將Time.zone更改爲用戶時區會自動處理我認爲錯誤的內容。謝謝 – Sid 2012-01-19 07:53:55