日付/時間フォーマットのデフォルトを設定

  • 128
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Railsで日時を表示する際のデフォルトフォーマットが気に入らなかったので、
デフォルトフォーマットを設定。

まず、Railsのデフォルトはこんな感じ。

> Time.now.to_s
 => 2014-03-03 15:21:57 +0900 

IT関連ではない日本人にとって、 YYYY-MM-DD は慣れていないだろうし、
+0900 は言わずもがななので、 YYYY/MM/DD HH:mm に統一したい。

デフォルトフォーマットの設定は config/initializers/time_formats.rb に。
ファイルがなければ新規作成。
中身はこんな感じに。

config/initializers/time_formats.rb
Time::DATE_FORMATS[:default] = '%Y/%m/%d %H:%M'
Time::DATE_FORMATS[:datetime] = '%Y/%m/%d %H:%M'
Time::DATE_FORMATS[:date] = '%Y/%m/%d'
Time::DATE_FORMATS[:time] = '%H:%M:%S'
Date::DATE_FORMATS[:default] = '%Y/%m/%d'

設定したらWebサーバを再起動。
そうするとこんな感じに表示される。

> Time.now.to_s
 => "2014/03/03 15:22" 

> Time.now.to_s(:date)
 => "2014/03/03" 

> Time.now.to_s(:datetime)
 => "2014/03/03 15:23" 

> Time.now.to_s(:time)
 => "15:23:07" 

ここで使えるフォーマット文字列は strftime の通り。
class Time.strftime