読者です 読者をやめる 読者になる 読者になる

Rails で、データベースと表示される時間を日本時間にそろえる

Rails は、内部の日時をUTCで管理しているため、
DBに保存された時間と、表示される時間が異なります。

$ config/application.rb

config.active_record.default_timezone = :local

config.active_record.time_zone_aware_attributes = false

config.time_zone = 'Tokyo'

これでローカル時間がそのまま保存され、そのまま表示されますが、
config.active_record.default_timezone には、utc か local だけを指定出来るため、
サーバーの時間設定に依存します。

$ cp /usr/share/zoneinfo/Japan /etc/localtime

これでOK
ただし、他のシステムと連携するなどの理由が無い限り、UTCで保存するべきです。