Rails 3没有UTC的默认date时间格式

我正在创build一个新的Rails 3应用程序,并在其中使用DateTime作为几个字段,但是每个date时间字段标准都有UTC后面的(在视图中),如:

 2010-10-10 16:19:00 UTC 

我如何摆脱UTC部分?

更新:这是我到目前为止:

 <%= trip.truckleft.strftime("%Y-%m-%d %H:%M") %> 

所以我现在所要做的就是把这件事情交给一个帮手,但是没有一个更好的普遍的方法吗?

我看了一些其他的post,build议在初始化程序中创build一个time_formats.rb ,但是我没有成功。

感谢您的帮助,非常感谢!

另一种 – 也许现在是首选 – 的方式是使用Rails的国际化和本地化支持 。 在这个指南中有很多东西需要学习,所以tl; dr版本是这样的:

 <%= l trip.truckleft, :format => :long %> 

有几个预定义的date和时间格式,例如:long可用于英语,您可以通过遵循这些示例中的YAML结构在config/locales/en.yml添加自己的config/locales/en.yml 。 如果你还没有深入了解整个i18n / l10n的事情,并且一直在看l方法,那么你也可以使用:

 <%= trip.truckleft.to_formatted_s(:long) %> 

这是最后为我工作的:

我在下面创build了一个新文件:

config/initializers/

命名为: time_formats.rb

并将其添加到该文件中:

 Time::DATE_FORMATS[:default] = "%Y-%m-%d %H:%M" 

然后我保存,重新启动服务器,它开始工作。

我使用i18n格式化我的date,并在en.yml:

 date: formats: default: "%m/%d/%Y" 

我想重复使用这种格式来显示模型的date,所以我的config / initializers / time_formats.rb包含了这个:

 Date::DATE_FORMATS[:default] = lambda { |date| I18n.l(date) } 

确切地说,你应该把它们放在你的初始化程序中:

 Date::DATE_FORMATS[:default] = "%m-%d-%Y" Time::DATE_FORMATS[:default] = "%m-%d-%Y %H:%M" 

有date时间,第二个将工作(例如:created_at在模型中)。

你可以在你的config/environment.rb文件的末尾放置下面一行:

 Date::DATE_FORMATS[:default] = "%Y-%m-%d %H:%M" 

对于导轨3

添加到config/environment.rb

 my_datetime_formats = { :default => '%F %T' } #or any other you like my_date_formats = { :default => '%F' } #or any other you like Time::DATE_FORMATS.merge!(my_datetime_formats) Date::DATE_FORMATS.merge!(my_date_formats) 

(与其他答案的区别 – 是merge!方法)