【发布时间】:2011-10-17 10:08:56
【问题描述】:
如何使用 Ruby on Rails 将 09-feb-73 格式的日期转换为 02/09/1973 (mm/dd/yyyy)?
【问题讨论】:
标签: ruby-on-rails ruby datetime
如何使用 Ruby on Rails 将 09-feb-73 格式的日期转换为 02/09/1973 (mm/dd/yyyy)?
【问题讨论】:
标签: ruby-on-rails ruby datetime
如果您在视图中需要此功能,我建议您使用本地化,因为您可以根据用户的本地设置轻松更改行为并保持控制器代码整洁(控制器为什么要关心日期格式?)。示例:
# config/locales/en.yml
en:
time:
formats:
short: "%m/%d/%Y"
# view file
<%=l Time.now, :format => :short %>
有关 Rails 本地化的更多信息,请参阅Rails Guide。
【讨论】:
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.strptime("09-feb-73", "%d-%b-%y").strftime("%m/%d/%Y")
日期格式:http://snippets.dzone.com/posts/show/2255
【讨论】:
您可以使用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 去猜测。
【讨论】: