Я новичок в настройке часовых поясов и запутался в нескольких моментах. Будем благодарны за любые советы по правильной конфигурации.
Насколько я понимаю, рекомендуется хранить все метки времени в формате UTC в БД (я использую PostgreSQL). С другой стороны, в реальном приложении я хотел бы видеть метки времени в моем местном часовом поясе (JST +9: 00).
Я настроил config/application.rb
так:
module MyApp
class Application < Rails::Application
config.load_defaults 5.2
config.time_zone = 'Tokyo'
end
end
Однако я не уверен, что он настроен правильно, потому что я получаю смешанные результаты в rails console
. Time.zone
и Time.now
говорят мне, что часовой пояс установлен на JST, но отметки времени created_at
и updated_at
отображаются как UTC, когда я User.first
.
User.first
#=> #<User id: 1, first_name: "Bob", last_name: "Smith", created_at: "2019-04-09 08:54:30", updated_at: "2019-04-09 08:54:30">
Но тогда время отображается как JST, если я специально спрашиваю время created_at
:
User.first.created_at
#=> Tue, 09 Apr 2019 17:54:30 JST +09:00
Почему метки времени отображаются как UTC, если я специально не спрашиваю о самом времени? Это нормально? То же самое происходит и для DateTime
столбцов в других моих таблицах.