如何在rails中格式化datetime?

在我的Rails视图中,我有以下代码显示日期时间。

 

该行的结果如下:

 2013-02-02 01:00:00 UTC 

如何更改此设置,使其显示为:

 2/2/13: X:00 PST 

在日期/日期时间使用ruby的strftime()

 <%= link_to timeslot.opening.strftime("%Y %m %d"), [@place, timeslot] %> 

查看文档以了解格式如何工作。

你应该使用一个帮手。

如果要将UTC转换为PST,可以使用in_time_zone方法

 def convert_time(datetime) time = Time.parse(datetime).in_time_zone("Pacific Time (US & Canada)") time.strftime("%-d/%-m/%y: %H:%M %Z") end <%= link_to convert_time(timeslot.opening), [@place, timeslot] %> 

对于您要求的格式:

 <%= link_to timeslot.opening.strftime(%d/%m/%y: %H:%M:%S %Z), [@place, timeslot] %> 

这里有更多选择:

http://rorguide.blogspot.co.uk/2011/02/date-time-formats-in-ruby-on-rails.html

要获取您在示例中查找的精确日期格式,请使用以下strftime格式字符串"%-d/%-m/%y: %k:00 PST"

但是,这可能不是您想要的。请在您的问题中澄清(a)您想要对时间字段做什么(例如,您是否总是希望在小时显示时间?X:00)和(b)你总是想报告PST时间,或者你想打印实际的时区,还是想转换为PST?