1
我看到很多類似的問題,但他們都傾向於關注視圖部分而不是數據庫部分。假設您的客戶需要將created_at字段保存在特定的本地時區,例如EST。使而是保存該如何更改created_at字段的RAILS默認時間戳格式(存儲在數據庫中)?
默認情況下軌將保存該數據庫
太陽,二零一三年十月十三日20時35分47秒+0000
我需要改變的行爲上:
太陽,2013年10月13日16時35分47秒+0000
我看到很多類似的問題,但他們都傾向於關注視圖部分而不是數據庫部分。假設您的客戶需要將created_at字段保存在特定的本地時區,例如EST。使而是保存該如何更改created_at字段的RAILS默認時間戳格式(存儲在數據庫中)?
默認情況下軌將保存該數據庫
太陽,二零一三年十月十三日20時35分47秒+0000
我需要改變的行爲上:
太陽,2013年10月13日16時35分47秒+0000
您可以在config/application.rb
中配置ActiveRecord將考慮的時區。例如,你可以添加以下內容:
config.time_zone = 'Eastern Time (US & Canada)'
config.active_record.default_timezone = 'Eastern Time (US & Canada)'
config.active_record.default_timezone
確定是否使用 Time.local(如果設置爲:本地)或Time.utc(如果設置爲:utc) 從數據庫中提取日期和時間。缺省值爲:utc爲 Rails,但Active Record默認爲:在使用 Rails之外的本地。
config.time_zone
設置應用程序的默認時區, 啓用活動記錄的時區感知。
Thanks Agis。我可能有其他錯誤。在我的application.rb文件的答案中添加了兩行後,Rails使用localtime填充created_at字段 - 4小時。因此,如果我在美國東部時間下午6點添加了一條記錄,它會在下午2點記錄created_at記錄。此外,在回答中的兩行代碼中,我的默認顯示所有記錄視圖停止顯示created_at字段,它現在顯示爲空白。 – Geo