search
LoginSignup
0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Organization

Docker、Railsでcreated_atやdatetimeなどの時間が日本時間で保存されないときに確認すること

結論

Docker、Railsでcreated_atやdatetimeなどの時間が日本時間で保存されないときはrubyのコンテナ内のtimezoneを確認しよう。

このようにconfigに書くといいとぐぐるとたくさん出てくる。
環境がhomebrewだとこれでいくと思われる。

dockerだとコンテナ内のtimezoneをAsia/Tokyoにする必要が出てくる。

config/application.rb
module App
  class Application < Rails::Application
    # Initialize configuration defaults for originally generated Rails version.
    config.load_defaults 5.2

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

なのでこちらを追加する。

rubyのDockerfile
ENV TZ Asia/Tokyo <= こちらを追加(docker-comopse.ymlのほうでもよい)

もし、これでもうまくいかなかったらDBのコンテナのtimezoneも確認して'Asia/Tokyo'にする必要があるかもしれません。

参考ページ
Dockerコンテナのタイムゾーン設定を変更する - 箱のプログラミング日記。

RailsでTime.nowが日本時間にならないときはTZを確認しましょう | TOMILOG

RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い - Qiita

Railsと周辺のTimeZone設定を整理する (active_record.default_timezoneの罠) - Qiita

Docker+Rails6でTimeZoneをUTCからJSTに変更する方法!設定方法はとても簡単! – himakuroブログ

MySQL :: MySQL 5.6 リファレンスマニュアル :: 10.6 MySQL Server でのタイムゾーンのサポート

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0
Help us understand the problem. What are the problem?