我有一个非activerecord服务器,该服务器将数据发送到另一个服务。该服务器期望在格式中接收包括UTC在内的说明:"%Y-%m-%d %H:%M:%S.%L"
。我已经有一个time_format.rb initializer覆盖 Time::DATE_FORMATS[:default]
是否有一种方法可以配置服务器,以便默认情况下 Time.now.to_s
将默认打印UTC时间,而无需每次调用它时指定Time.now.utc
?我正在使用Ruby 2.0.0和Rails 4。
我尝试将config.time_zone = 'London'
添加到config/application.rb
,但这不起作用。
我认为ActivereCord不应该与它有关,但也许我误会了。就像Sergio所说的那样,将您的申请设置为timeZone将其设置为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
我强烈建议不要超越时间。那只能导致黑暗的一面。
适用于任何Ruby应用程序的通用解决方案:
module TimeClassExtensions
def now
super.utc
end
end
Time.singleton_class.prepend(TimeClassExtensions)