Ruby on rails 不带UTC的Rails 3默认日期时间格式

Ruby on rails 不带UTC的Rails 3默认日期时间格式,ruby-on-rails,datetime,ruby-on-rails-3,Ruby On Rails,Datetime,Ruby On Rails 3,我正在创建一个新的Rails 3应用程序,在其中我对几个字段使用了DateTime,但是每个DateTime字段标准背后都有UTC(在视图中),例如: 我如何摆脱UTC部分 更新:以下是我目前掌握的信息: <%= trip.truckleft.strftime("%Y-%m-%d %H:%M") %> 所以我现在要做的就是把它放在一个助手中,但是没有更好更通用的方法吗 我看了其他一些帖子,建议在初始化器中创建一个time\u formats.rb,但是我没有成功 谢谢你的帮助,

我正在创建一个新的Rails 3应用程序,在其中我对几个字段使用了
DateTime
,但是每个DateTime字段标准背后都有UTC(在视图中),例如:

我如何摆脱UTC部分

更新:以下是我目前掌握的信息:

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

所以我现在要做的就是把它放在一个助手中,但是没有更好更通用的方法吗

我看了其他一些帖子,建议在初始化器中创建一个
time\u formats.rb
,但是我没有成功


谢谢你的帮助,非常感谢

您可以在
config/environment.rb
文件的末尾添加以下行:

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

以下是最终对我有效的方法:

我在中创建了一个新文件:

config/initializers/

命名:time\u formats.rb

并将此添加到该文件中:

Time::DATE_FORMATS[:default] = "%Y-%m-%d %H:%M"
然后我保存并重新启动了服务器,它开始工作。

另一种方法——也许现在更可取——是使用。在该指南中有很多东西需要学习,因此tl;dr版本如下:

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

我正在使用i18n格式化我的日期,并以en.yml格式显示:

date:
  formats:
    default: "%m/%d/%Y"
我想在模型显示日期时重复使用该格式,因此我的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"
当有datetime时,第二个将起作用(例如:created_at for in models)。

对于rails 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!
method)

Argh,这里是。堆栈溢出不允许我发布多个链接,因为我的帐户是新的。Sheesh.+1并向上投票,以提高您的代表性--Stack Overflow需要更多像您这样的人这对我来说是4.1版的作品。这种方法的优点是,您通常甚至不需要将时间添加到,大多数上下文都会自动将时间转换为字符串。您还可以添加其他格式,如Time::DATE_格式[:DATE_only]=%Y-%m-%d”,然后像DATE一样使用它们。to_s(:DATE_only)-代码比国际化版本少,因此如果您没有国际化计划,效果更好。您只需添加DATE::DATE_格式[:默认]=%Y-%m-%d%H:%m”,而不仅仅是时间格式;)在rails>4.1中为我工作
Date::DATE_FORMATS[:default] = "%m-%d-%Y"
Time::DATE_FORMATS[:default] = "%m-%d-%Y %H:%M"
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)