Railscasts - Formatting Time
より
environment.rb
Time::DATE_FORMATS[:hoge] = "hoge on %B %d at %I:%M %p"
viewでこう書ける。
<%= task.hoge_at.to_s(:hoge) %>
こんな感じ
ruby script/console
>> t = Time.now => Tue Feb 23 19:28:30 0900 2010 >> t.to_s(:hoge) => "hoge on February 23 at 07:28 PM" >> ?> t.to_s => "Tue Feb 23 19:28:30 +0900 2010" >> t.to_s(:short) => "23 Feb 19:28" >> t.to_s(:db) => "2010-02-23 19:28:30" >> t.to_s(:time) => "19:28" >> t.to_s(:long) => "February 23, 2010 19:28" >> t.to_s(:rfc822) => "Tue, 23 Feb 2010 19:28:30 +0900"
補足
refe Time#strftime
* %A: 曜日の名称(Sunday, Monday ... )
* %a: 曜日の省略名(Sun, Mon ... )
* %B: 月の名称(January, February ... )
* %b: 月の省略名(Jan, Feb ... )
* %c: 日付と時刻
* %d: 日(01-31)
* %H: 24時間制の時(00-23)
* %I: 12時間制の時(01-12)
* %j: 年中の通算日(001-366)
* %M: 分(00-59)
* %m: 月を表す数字(01-12)
* %p: 午前または午後(AM,PM)
* %S: 秒(00-60) (60はうるう秒)
* %U: 週を表す数。最初の日曜日が第1週の始まり(00-53)
* %W: 週を表す数。最初の月曜日が第1週の始まり(00-53)
* %w: 曜日を表す数。日曜日が0(0-6)
* %X: 時刻
* %x: 日付
* %Y: 西暦を表す数
* %y: 西暦の下2桁(00-99)
* %Z: タイムゾーン trap [trap::Time]
* %%: %自身
問題
よりシンプルに日付と時刻の表示書式を整えるには... - ザリガニが見ていた...。
nilだとまずかった。
?> t = nil => nil >> t.to_s(:hoge) ArgumentError: wrong number of arguments (1 for 0) from (irb):5:in `to_s' from (irb):5
結局
ヘルパメソッド使うか。