やったこと
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"