如何使用Ruby on Rails将格式为09-02-73的日期转换为02/09/1973 (mm/dd/yyyy) ?
合法的Ruby日期时间格式
Date.strptime("09-feb-73", "%d-%b-%y").strftime("%m/%d/%Y")
注意strptime
是Rails的一部分。以下是使用的相关格式:
%b -缩写月份名称(' Jan')
%d -月中的第几天(01..31)
%m -一年中的第几个月(01..12)
%y -没有百年的年份(00..99)
%Y -年代
您可以使用Date.parse
和Date#strftime
:
d = Date.parse('09-feb-73').strftime('%m/%d/%Y')
# "02/09/1973"
你也可以用Date.strptime
代替Date.parse
:
d = Date.strptime('09-feb-73', '%d-%b-%y').strftime('%m/%d/%Y')
# "02/09/1973"
strptime
的优点是可以指定格式,而不是让parse
去猜测。日期。strptime("09 - 2月- 73","% d - y % b - %").strftime("% m/% d/y %")
日期格式:http://snippets.dzone.com/posts/show/2255
如果你在视图中需要这个,我建议使用本地化,因为你可以很容易地根据用户的本地设置改变行为,并保持你的控制器代码整洁(为什么控制器要关心日期格式?)例子:
# config/locales/en.yml
en:
time:
formats:
short: "%m/%d/%Y"
# view file
<%=l Time.now, :format => :short %>
有关rails本地化的更多信息,请参阅rails指南