Ruby
Rails

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

More than 5 years have passed since last update.

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