目的
アプリ内で作成したレコードを表示させる際に、デフォルトのUTC(協定世界時)からJST(日本標準時)に変更し表示させる。
準備
事前にアプリケーションの基本的な機能が実装されているものとして話を進めます。
まずユーザーでもなんでもいいので、テーブルにレコードを作成します。
Sequel ProなどのGUIツールで確認すると、created_atカラム
に日本時間よりも約9時間遅い時間で作成されたことになっているはずです。ここから日本時間で表示する設定をしていきます。
手順
config/application.rb
に以下の記述をします。
config/application.rb
# 省略
class Application < Rails::Application
config.time_zone = 'Tokyo'
end
アプリを立ち上げた段階で既にコードが用意されているので、その中からclass Application
を探し、その中にタイムゾーンの記述をします。
この後、必ずサーバを再起動してから確認してください。でないと表示が変わりません。
また表示方法としては、
created_at.strftime("%Y/%m/%d %H:%M")
# →2020/01/01 のように表示できます。
などとすることで、見やすい表示となります。
補足
GUIツールで確認すると、created_at
の時間自体は変更後も変わりません。(UTCのまま)
あくまで、画面に表示させるときにUTC(協定世界時)からJST(日本標準時)に変換してくれるようなイメージです。