Rails

2015-06-28, rails ruby

日付のフォーマットを指定する

strftimeで一つ一つ指定するのは大変だし、表記ゆれが出てくると面倒です。というわけで、Rails(4から?)ではロケールでフォーマットを指定することができます。日付の場合は「date」でOKですが、日時は何故か(datetimeではなく)「time」がキーになっているんですよね…(はまりました)。

locals/ja.yml
  date:
    formats:
      short: "%y/%m/%d"
      default: "%Y/%m/%d"
  time:
    formats:
      short: "%y/%m/%d %H:%M"
      default: "%Y/%m/%d %H:%M"

上記のように設定しておくと、lメソッド経由で設定したフォーマットを適用できます。

I18n.l DateTime.now, format: :short

ビューの中で呼び出す場合は、クラス名不要です。

<%= l DateTime.now, format: :short %>

参考URL

この記事は役に立ちましたか?