Rails での タイムゾーン の設定

結論

config/application.rb に以下のように書いておけばよいでしょう。

    config.time_zone = 'Asia/Tokyo'
    config.active_record.default_timezone = :utc

理由など

データベースには UTC で入れておいたほうが後からいくらでも料理できますし、各種 Web API の返り値を扱う場合にも便利です。

表示をする場合は JST で出てくれたほうが便利なので*1time_zone には Asia/Tokyo を指定すればよいと思います。

最悪なのが、ローカルマシンで JST に設定していて、その上でデータベース上に :local で放り込むと18時間ずれることがあります(ありました)。後からリカバリするのは凄まじく面倒なので、ここは一番最初にしっかり見ておくべきところだと思います。

参考

https://qiita.com/sylph01/items/8a010dda2e2ddcfdfea0

*1:もちろん国内向けの場合

Powered by はてなブログ