Rails5 で日付、日時をフォーマットする
Ruby Ruby on Rails
Published: 2019-05-08

やったこと

Rails5 で日付、日時をフォーマットする方法を調べます。

確認環境

$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]

$ rails --version
Rails 5.2.3

調査

方法1. strftime

irb(main):001:0> Date.current.strftime('%Y/%m/%d')
=> "2019/05/08"

この方法は都度フォーマットを指定する必要があります。

方法2. config/locales

I18n の機能を利用します

デフォルトの言語を日本語にします

config/application.rb

config.i18n.default_locale = :ja

次に、yml でフォーマットを定義します

config/locales/ja.yml

ja:
  date:
    formats:
      default: '%Y/%m/%d'
      long: '%Y年%m月%d日'
      short: '%m/%d'

I18n を使って日付をフォーマットします。

$ rails c
Running via Spring preloader in process 87044
Loading development environment (Rails 5.2.3)
irb(main):001:0> I18n.l(Date.today)
=> "2019/05/08"
irb(main):002:0> I18n.l(Date.today, format: :long)
=> "2019年05月08日"
irb(main):003:0> I18n.l(Date.today, format: :short)
=> "05/08"

参考