I previously asked a question。这就是它的主旨。
我该怎么做
2010-06-14 19:01:00 UTC
并将其转换为
June 14th, 2010
我使用的答案是调用post.date,只需将下面的内容添加到post.rb
@date = Time.now
@date.strftime("%B %d, %Y")
它确实以单词显示日期,但我不想显示当前日期。我想要post.created_at日期。
如何修改上述内容(或我需要在其他地方添加什么内容)才能使其正常工作?
答案 0 :(得分:15)
post.created_at.strftime("%B %d, %Y")
strftime的一个很好的资源是http://strfti.me
答案 1 :(得分:2)
您可以定义自己的格式化程序,以便重新用作初始化程序。
# config/initializers/time_formats.rb
Time::DATE_FORMATS[:nice] = "%B %d, %Y"
然后使用
User.created_at.to_formatted_s(:nice)
参考
答案 2 :(得分:0)
如果您正在使用Rails,您还可以在区域设置中定义自定义时间格式。
这就是我对波兰语语言环境的看法:
pl:
date:
formats:
default: "%Y-%m-%d"
short: "%d %b"
long: "%d %B %Y"
day_names: [Niedziela, Poniedziałek, Wtorek, Środa, Czwartek, Piątek, Sobota]
abbr_day_names: [nie, pon, wto, śro, czw, pia, sob]
month_names: [~, Styczeń, Luty, Marzec, Kwiecień, Maj, Czerwiec, Lipiec, Sierpień, Wrzesień, Październik, Listopad, Grudzień]
abbr_month_names: [~, sty, lut, mar, kwi, maj, cze, lip, sie, wrz, paź, lis, gru]
order: [ :year, :month, :day ]
time:
formats:
default: "%a, %d %b %Y, %H:%M:%S %z"
short: "%d %b, %H:%M"
long: "%d %B %Y, %H:%M"
am: "przed południem"
pm: "po południu"
然后在视图中使用以下方法对时间戳进行本地化:
<%= l(@post.created_at, :format => :long) %>
或外界观点:
I18n.l(@post.created_at, :format => :long)
这比直接在Time或Date类中定义格式更灵活。