Railsのタイムゾーンの初期設定を変更する方法

初期設定の確認

まずは初期設定がどうなっているかコンソールで確認してみます。

Image from Gyazo

初期設定はUTCとなっていることが分かります。

  • UTC とは?
    簡単に言うと世界標準の時間です。ちなみに日本時間はJSTです。

変更するには?

Railsガイドを見ると、config.time_zone = <任意の標準時間>で設定してあげるといいみたいです。

<任意の標準時間>はこちらで探してください。

JAPANでは見つけれないので、TOKYOで探してみると

Image from Gyazo

3つ見つかりました!! どれかお好きなのを選んでください。

それではconfig/application.rbに設定します。

config/application.rb

require_relative 'boot'
・・・
module Product
  class Application < Rails::Application
    config.load_defaults 5.2

    config.generators.system_tests = nil

    config.time_zone = "Tokyo" # <= 追加
  end
end

更にactive_recordへの保存する際のタイムゾーンも変更するには以下追加します。

config.active_record.default_timezone = :local
# デフォルトはUTCです!!
config/application.rb

require_relative 'boot'
・・・
module Product
  class Application < Rails::Application
    config.load_defaults 5.2

    config.generators.system_tests = nil

    config.time_zone = "Tokyo"
    config.active_record.default_timezone = :local # <= 追加
  end
end

それではコンソールで確認してみましょう。

Image from Gyazo

Tokyoに変更されているのが確認できます!!