为什么delayed_job在delayed_jobs表中记录了不正确的时间戳?

时间:2015-11-19 14:59:06

标签: ruby-on-rails delayed-job

我觉得我对此帖Why is the timezone off in delayed_job?

有类似的问题

我已在config/application.rb中设置了我的time_zone,如下所示:

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)。

1 个答案:

答案 0 :(得分: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)'