見出し画像

【Rails】created_at、updated_atを日本時間に変更

Ruby on RailsでWebサービスを作っていたら、日本時間への設定変更でつまずいてしまいました。

2019-07-09 10:00 + 0900みたいな表示になってしまう。
+0900じゃなくて、2019年07月09日 19時みたいな感じにしたい。

created_at、updated_atを日本時間に設定する方法

以下の4ステップでタイムゾーンを変更できます。

ステップ1:
config/application.rbにタイムゾーンの設定を追加

config/application.rbを開くと、以下のようなコードが記述されています。

画像1

このファイルに、以下のコードを記述してください。

config.time_zone = 'Tokyo' 

画像2

ステップ2:サーバーを再起動させる

そして、rails sでサーバーを再起動させます。そうすると、以下のように日本時間で表示されるはずです。

画像3

ただ、これだと読みにくいので、さらにコードを記述していきます。

より見やすいように修正する


config/initializers/time_formats.rbというファイルを作ってください。

そして作ったファイルに、以下のコードを記述しましょう。​

config/initializers/time_formats.rb

Time::DATE_FORMATS[:datetime_jp] = '%Y年 %m月 %d日 %H時 %M分' 

コードを書いたら、サーバーを再起動します。

ステップ4:viewの修正をする


次にやるのがviewファイルの修正。

to_sメソッドを呼び出して、引数にフォーマット名を指定。

ちなみにto_sとは配列を文字列に変換するメソッドで、配列の各要素を文字列に変換して連結した文字列を返します。

以下のコードを日本時間へ修正したい箇所に追加します。

<%= xxx.created_at.to_s(:datetime_jp) %>
<%= xxx.updated_at.to_s(:datetime_jp) %>

画像4

完成です!
参考にしたサイト
https://qiita.com/tomo_k09/items/e4f19947d35890500492 ​

この記事が気に入ったらサポートをしてみませんか?