30代プログラム初心者がWEBエンジニアになる

30代プログラム初心者が、WEBエンジニアになるまでの奮闘を書いていきます。

Rails のタイムゾーンについて

こんにちは、ぐっちと申します。

今回は応用カリキュラムで学んだ事を書きたいと思います。

タイトルにもある通り、タイムゾーンの話です。

 

・デフォルトでは UTC

コードレビューをしてもらった際に、コメントで「メッセージの投稿時間が、日本時間で表示されていません。」と帰ってきた。

その時の私は、日本時間で表示されていない?日本時間表示ってなんだ?何時何分何秒って表示しろってことか? と考えて

↓ こんなコードを修正しようと思い、strftime メソッドについて調べました。

= message.created_at.strftime("%Y/%m/%d %H:%M")

因みにこのコードだと、2019/07/10 12:00 という感じの表示になっています。

 

そしてフォーマットの一覧を見ているときにふと気になったものが、%Z(タイムゾーンを表示する)でした。

そこでやっと、ん?タイムゾーンって・・・となり早速

= message.created_at.strftime("%Y/%m/%d %H:%M %Z")

にしてやってみると、バッチリ 2019/7/10 12:00 UTC と表示されて9時間ずれていました。

それまで表示の仕方ばかりに気を取られていて、時間がずれている事など微塵も疑問に思わなかったのです。

 

という事で、次はRails タイムゾーンで検索して、config/application.rb に

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

を追加して、データベース への保存時間と表示をJST(日本時間)に修正しました。

 

今まで何故気がつかなかったのか全くわかりませんが、また一つ勉強になった出来事でした。

ここまで読んでくださり、ありがとうございました。

 ツイッターで日々の学習をつぶやいています(@Yamaguc45844169