EC2環境にデプロイしたRailsアプリのDBとしてRDS(MySQL)を利用しているのですがtime_zoneにAsia/Tokyoを設定したのに実際にインスタンスを保存してみるとcreated_atに記録される時間がUTCのままです。
MySQLの設定
mysql> show variables like '%time_zone%'; +------------------+------------+ | Variable_name | Value | +------------------+------------+ | system_time_zone | UTC | | time_zone | Asia/Tokyo | +------------------+------------+ 2 rows in set (0.01 sec) mysql> SELECT NOW(); +---------------------+ | NOW() | +---------------------+ | 2022-01-18 16:54:08 | +---------------------+ 1 row in set (0.00 sec) *現在時刻が表示されています。
使用しているDBの中身を確認
mysql> use my_db +----+------------------------------------------------------------------------------------------------------------+---------+-------------+----------------------------+----------------------------+ | id | content | user_id | question_id | created_at | updated_at | +----+------------------------------------------------------------------------------------------------------------+---------+-------------+----------------------------+----------------------------+ | 46 | Nothing | 2 | 7 | 2022-01-17 23:30:23.732658 | 2022-01-17 23:30:23.732658 | | 47 | Test | 2 | 24 | 2022-01-18 00:07:31.282930 | 2022-01-18 00:07:31.282930 | +----+------------------------------------------------------------------------------------------------------------+---------+-------------+----------------------------+----------------------------+ *created_atがUTC時刻になっている。
どうしたらcreated_atがJSTで記録されるようになるのでしょうか?
追記(Railsの設定)
config/application.rb
1config.active_record.default_timezone = :local 2config.time_zone = 'Tokyo'
追記(MySQLへのtimezone設定過程)
AWSのRDSダッシュボードからパラメータグループを作成
↓
time_zoneにAsia/Tokyoを設定
↓
DBインスタンスに作成したパラメータグループを設定
TZ環境変数
[ec2-user@ip-]$ export TZ="Asia/Tokyo"
あなたの回答
tips
プレビュー