如何在Ruby中转换日期格式

3
以下是一些输出结果:
Date.today  => Mon, 25 Jun 2012 
Date.today.to_formatted_s(:long_ordinal)  => "June 25th, 2012" 
Date.today.strftime('%A %d, %B')  =>  "Monday 25, June" 

现在我需要以以下格式输出:
  Monday 25th, June      or       Thrusday, 1st, October

问题在于to_formatted_sstrftime仅适用于日期,且两者都返回字符串。我该如何以所需的方式获取输出?

1个回答

9
你可以使用Date::DATE_FORMATS添加新的定制格式,使用Integer.ordinalize获取日期的序数:
Date::DATE_FORMATS[:month_ordinal] = lambda { |date| 
  date.strftime("%A #{date.day.ordinalize}, %B") 
}

>> Date.today.to_formatted_s(:month_ordinal)
=> "Monday 25th, June"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接