2015-11-19 34 views
1

我覺得我有一個類似的問題,這個職位Why is the timezone off in delayed_job?delayed_jobs表中爲什麼delayed_job記錄的時間戳不正確?

我設置我的time_zone在config/application.rb如下:

module Bane 
    class Application < Rails::Application 
    config.time_zone 'Eastern Time (US & Canada)' 
    end 
end 

當看着我delayed_jobs.log我記錄時間郵票展銷正確。但是,當我看着我的delayed_jobs表時,它顯示2015-11-19 14:25:11.637這不是我所期望的(2015-11-19 09:25:11.xxx)。

+0

什麼的'Time.zone'回報,如果你在鐵軌控制檯運行呢? –

+0

'Rails.application.config.time_zone => 「東部時間(美國和加拿大)」' – daveomcd

+1

奇怪,它應該工作,然後(在此基礎上:https://github.com/collectiveidea/delayed_job_active_record/blob/master/ lib/delayed/backend/active_record.rb#L110) –

回答

4

當您設置config.time_zone設置的Rails仍然使用存儲UTC日期,但他們一旦記錄被加載轉換成所需的時區。

還有一個是另一個的設置 - config.active_record.default_timezone,從而影響日期存儲在數據庫的方式,但據我所知它只能設置爲:local,或者(默認值):utc。但是,如果您可以將服務器時區設置爲EST,那麼我相信它應該可以工作。

編輯:看來,你實際上可以設置任何時區爲default_timezone也。例如:config.active_record.default_timezone = 'Eastern Time (US & Canada)'

相關問題