作成日時を表示しよう!

掲示板の作成日時を制作します。 何も設定を変えずにcreated_atの時間を見ると、UTC(世界標準時)で出てきてしまいます。そのため、いくつか変更や設定をすることがあるので観ていきます。

タイムゾーンの変更

最初にタイムゾーンを日本時間に設定します。

class Application < Rails::Application
  config.time_zone = 'Asia/Tokyo'   # タイムゾーンを日本時間に設定
end

UTCから変更することができましたが、まだまだ進めます。

読みやすいフォーマットへ

日本人の読みやすいフォーマットに変更していきます。 Railsを使っているため、便利に使えるlメソッドを使っていきます。 使い方は、

<%= l board.created_at %>

のように、lを使いたいところの前に置くだけですが、これだけではなんの変化もありません。次に何をするのか。

ロケールの設定

まずは、日本人が読みやすい書式にするため、アプリケーションのロケール:jaに変更します。

ロケールとは、あるネイティブ言語環境の明示的なモデルおよび定義のことです。ロケールの概念は、http://opengroup.org からアクセスできる POSIX 規格に明示的に定義されて含まれています。

class Application < Rails::Application
  config.i18n.default_locale = :ja    # ロケールを日本に設定
end

次に、config/locales/ja.ymlというファイルを作り、

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

とすることで、日本人向けの書式で日時が表示されます。 さらに、表示するものを短くすることも可能です。

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

と、して、

<%= l board.created_at, format: :short %>

としてあげると、月日時分だけの短いものを表示させることも可能です。

参考

https://qiita.com/jnchito/items/831654253fb8a958ec25