結論
Docker、Railsでcreated_atやdatetimeなどの時間が日本時間で保存されないときはrubyのコンテナ内のtimezoneを確認しよう。
このようにconfigに書くといいとぐぐるとたくさん出てくる。
環境がhomebrewだとこれでいくと思われる。
dockerだとコンテナ内のtimezoneをAsia/Tokyoにする必要が出てくる。
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
なのでこちらを追加する。
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 でのタイムゾーンのサポート