我有一个非ActiveRecord服务器,它将数据发送到另一个服务。该服务器希望以格式"%Y-%m-%d %H:%M:%S.%L"
接收包括UTC的指令。我已经有一个覆盖Time::DATE_FORMATS[:default]
的time_format.rb初始值设定项有没有办法配置我的服务器,以便Time.now.to_s
默认打印UTC时间,而不必每次都指定Time.now.utc
我叫它?我正在使用ruby 2.0.0和Rails 4。
我尝试将config.time_zone = 'London'
添加到config/application.rb
,但这不起作用。
答案 0 :(得分:0)
我不认为ActiveRecord应该与它有任何关系,但也许我误解了。像Sergio说的那样,将你的应用程序时区设置为UTC。
这是我的Rails应用程序。我的电脑在PST。我的Rails应用程序设置为UTC。
> Time.now
=> 2014-01-22 21:52:38 -0800
> Time.zone.name
=> "UTC"
> Time.zone.now
=> Thu, 23 Jan 2014 05:52:43 UTC +00:00
> Time.now.utc
=> 2014-01-23 05:52:45 UTC
我强烈建议不要覆盖Time.now。这只能导致黑暗面。
答案 1 :(得分:0)
适用于任何Ruby应用程序的通用解决方案:
module TimeClassExtensions
def now
super.utc
end
end
Time.singleton_class.prepend(TimeClassExtensions)