2019年2月15日追記
釘を差された
要はデフォルトをいじるな、と。確かに「なるほど」以上の感想が出なかったので
Time::DATE_FORMATS[:custom] = '%Y/%m/%d %A' Time.zone.now.to_s(:custom) # => "2006/01/02 Monday"
のように独自フォーマットを作って生成したほうがよい。
普通だと
p = post.published_on.strftime("%Y年%m月%d日 %H時%M分")
だがあのRailsたんはやっぱり一味違かった
Railsのレールに乗ったやり方
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'
Railsを再起動する
設定変更前(デフォルト)
2.2.1 :001 > Time.now.to_s => "2015-10-21 13:09:56 +0900"
変更後
2.2.1 :001 > Time.now.to_s => "2015/10/21 13:10"
ビューにも使える
p = post.to_s(:date)
ちゃんと2017/12/08
と表示されるはず
フォーマットはstrftime()と同じ