2015-11-19 2 views
1

Я чувствую, у меня аналогичная проблема на этот пост Why is the timezone off in delayed_job?Почему delayed_job записывает неправильную отметку времени в таблице delayed_jobs?

Я насторить 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', если вы запустите его в консоли rails? –

+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, то, я считаю, он должен работать.

EDIT: Кажется, что вы можете установить любой часовой пояс для default_timezone. Например: config.active_record.default_timezone = 'Eastern Time (US & Canada)'.

Смежные вопросы