194
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

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

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

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
194
Help us understand the problem. What are the problem?