おーしまブログ

プログラミングやってます

created_at を日本時間に変更する方法

こんにちは、おーしまです。

今回は、created_atを日本時刻に変更する方法について、書いていきます。


created_atとは、データベースにレコードが保存されるときに、その日付と時刻を保存するカラムのことです。

railsでは、テーブルを作成した際に、デフォルトでcreated_atカラムが作られます。
しかし、そこで保存される時刻は日本時刻ではないため、新たに設定を加える必要があります。


config/application.rb

require_relative 'boot'

require 'rails/all'

# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)

module Xyzcar
  class Application < Rails::Application
    # Initialize configuration defaults for originally generated Rails version.
    config.load_defaults 6.0
    config.i18n.default_locale = :ja  #--------------追加
    config.time_zone = 'Tokyo'   #---------------追加

    # Settings in config/environments/* take precedence over those specified here.
    # Application configuration can go into files in config/initializers
    # -- all .rb files in that directory are automatically loaded after loading
    # the framework and any gems in your application.
  end
end
  • config.i18n.default_locale = :ja
  • config.time_zone = 'Tokyo'

の2つを追加します。



そして、
config/locales ディレクトリに新しく、ja.yml ファイルを作り、以下を記述します。

ja:
  time:
    formats:
      default: "%Y/%m/%d %H:%M:%S"


あとは、viewファイルで、

<%= l @car.created_at %>

l(エル)メソッドを使って記述します。


以上で、サーバーを再起動すれば、日本時刻で表示することができます。




さらに、時刻はいらないので、日付だけ表示させたいときは、

<%= @car.created_at.strftime('%Y/%m/%d') %>

で、「2020/12/10」のように、日付だけ表示させることができます。


今回はここまでです。
それでは、また。

ここはどこ おれはだれ それに近いものがあんだよ 始めようとした奴らも迷い始めてる 怖がらせないでよ そりゃ甘くはないけど まだまだ 夢見ていい世界なんでしょ {UVERwould「ハイ!問題作」}