⏰
[Rails]created_atの表示を日本時間にする方法
やること
created_atをそのままビューに表示すると、「2023-10-13 19:45:11 +0900」のように表示されてしまいます。今回は日本向けのアプリケーションなので、タイムゾーンをデフォルトのUTCからJSTに変更し、フォーマットも見やすいように変更します。
対応前の表示はこちら👇
UTCをJSTに変更
まずはタイムゾーンを変更します。
config/application.rbを開き、config.time_zone = 'Tokyo'
という記述を追加します。
class Application < Rails::Application
config.time_zone = 'Tokyo'
end
その後サーバーを再起動すると、タイムゾーンが日本時間に変更されます。
年月日の表示フォーマットを変更する
今回はYYYY/MM/DDの形にフォーマットを変更します。
config/initializers配下に「time_formats.rb」というファイルを作成し、その中に以下の記述をします。
Time::DATE_FORMATS[:datetime_jp] = '%Y/%m/%d'
そのサーバーを再起動します。
次にビューの修正です。
ビューで<%= q.created_at %>
と表示していた箇所を、以下のように変更します。
<%= q.created_at.to_s(:datetime_jp) %>
この記述によって「time_formats.rb」に記述したフォーマットを読み込み、YYYY/MM/DDの形で表示されるようになります。
対応後の表示はこちら👇
参考記事
Discussion