2012-12-26 57 views
1

我的應用程序在UTC時區已運行了6個月以上。這意味着所有ActiveRecord和MongoDB對象都已在UTC時區中創建。足夠的好奇心,如果我繼續前進,改變application.rb中相應的設置:Ruby on Rails更改應用程序的時區

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

將它轉換UTC中創建到EST時區的記錄?那麼MongoDB記錄呢? (我使用Mongoid作爲我的Ruby驅動程序)。它是否像在application.rb中翻轉開關一樣簡單,就是這樣?

回答

3

ActiveRecord的將存儲在UTC的一切,無論什麼config.time_zone說;我很難找到這方面的權威性參考,迄今爲止我發現的最好的文檔是ActiveRecord::Timestamp文檔。 MongoDB should also be storing everything in UTC

日期

BSON日期是一個64位的整數,它表示自Unix紀元毫秒(1970年1月1日)的數目。官方BSON規範將BSON日期類型稱爲UTC 日期時間

所以沒有在你的數據庫應該改變或需要改變。該config.time_zone設置僅在事物的Rails的側面使用,它有沒有關係什麼的時區使用您的數據庫裏面,所以你不應該有什麼可擔心的。