Ruby on Rails中的DateTime格式化4

Fra*_*004 7 ruby datetime ruby-on-rails

我需要将它添加到我的RoR 4应用程序中以设置默认时间,日期和日期时间格式.我按照这个指南,但我无法让它工作.我将它添加到application.rb但日期只会从2014-05-27 07:05:00 UTC更改为2014年5月27日,我希望它是27/05/2014 5:00 PM.

http://blog.nicoschuele.com/posts/cheatsheet-to-set-app-wide-date-and-time-formats-in-rails

  # Date
  # ----------------------------
  Date::DATE_FORMATS[:default] = "%e/%B/%Y" 

  # DateTime
  # ----------------------------
  DateTime::DATE_FORMATS[:default] = "%m/%d/%Y %I:%M %p" 
  # Time
  # ----------------------------
  Time::DATE_FORMATS[:default] = "%e/%B/%Y"              
Run Code Online (Sandbox Code Playgroud)

pdo*_*obb 11

我不确定为什么你链接的文章区分DateTime::DATE_FORMATSTime::DATE_FORMATS.根据我的经验(显然,在你的经历中)也Time::DATE_FORMATS代表TimeDate对象.所以这样做:

# Date
# ----------------------------
Date::DATE_FORMATS[:default] = "%e/%B/%Y" 

# DateTime / Time
# ----------------------------
Time::DATE_FORMATS[:default] = "%m/%d/%Y %I:%M %p" 
Run Code Online (Sandbox Code Playgroud)

以下是我的控制台中的示例输出:

> DateTime.current.to_s # => "05/27/2014 01:19 AM"
> Time.current.to_s     # => "05/27/2014 01:19 AM"
> Date.current.to_s     # => "27/May/2014"
Run Code Online (Sandbox Code Playgroud)


hou*_*se9 6

您应该将I18n助手与区域设置结合使用

I18n.localize(your_datetime_column, format: :short)
Run Code Online (Sandbox Code Playgroud)

然后在locals文件中指定格式,即config/locales/en.yml,您可以修改现有的short和long或添加自己的格式键.更改locales文件后,可能需要重新启动rails.

另见:http://guides.rubyonrails.org/i18n.html#adding-date-time-formats