Я решил скомпилировать этот ответ, потому что все остальные, по-видимому, являются неполными.
config.active_record.default_timezone определяет, использовать ли Time.local (если установлено:local) или Time.utc (если установлено значение: utc) при извлечении даты и времени из базы данных.Значение по умолчанию: utc.http://guides.rubyonrails.org/configuring.html
Если вы хотите изменить Rails часовой пояс, но продолжать сохранять Active Record в базе данных в UTC, используйте
# application.rb
config.time_zone = 'Eastern Time (US & Canada)'
Если вы хотите изменить Rails часовой пояс И иметь Active Record время хранения в этомчасовой пояс, используйте
# application.rb
config.time_zone = 'Eastern Time (US & Canada)'
config.active_record.default_timezone = :local
Предупреждение : вам действительно следует подумать дважды, даже трижды, прежде чем сохранять время в базе данных в формате, отличном от UTC.
Примечание
Не забудьте перезапустить сервер Rails после изменения application.rb
.
Помните, что config.active_record.default_timezone
может принимать только два значения
- : местный (конвертируется в часовой пояс, определенный в
config.time_zone
) - : utc (конвертируется в UTC)
Вот как вы можете найти все доступные часовые пояса
rake time:zones:all