我的应用程序time_zone
设置为UTC
(默认情况下,我没有在config/application.rb中更改它)。
这是我在rails控制台
中看到的内容1.9.3p194 :004 > Time.now
=> 2014-03-20 14:45:23 -0500
1.9.3p194 :005 > 1.day.ago
=> Wed, 19 Mar 2014 19:45:48 UTC +00:00
为什么我在做Time.now
时得到的时间在中央?它应该返回UTC格式的时间,如1.day.ago
Time.now
使用它所运行的机器的语言环境。为了保持一致性,您可以执行Time.now.utc
来强制UTC:
1.9.3-p484 :001 > Time.now
2014-03-20 16:14:23 -0400
1.9.3-p484 :002 > Time.now.utc
2014-03-20 20:14:26 UTC
使用Time.zone.now
-它将考虑您的应用程序的时区:
项目默认TZ:
2.0.0-p353 :001 > Time.now
=> 2014-04-01 23:12:06 +0300
2.0.0-p353 :002 > Time.zone.now
=> Tue, 01 Apr 2014 20:12:11 UTC +00:00
2.0.0-p353 :003 >
项目自定义TZ:
2.1.0 :001 > Time.now
=> 2014-04-01 23:14:23 +0300
2.1.0 :002 > Time.zone.now
=> Tue, 01 Apr 2014 22:14:27 CEST +02:00
2.1.0 :003 >
在这里你可以找到更多关于使用时区的有用信息(特别是看一下该做和不该做的部分):
http://www.elabs.se/blog/36-working-with-time-zones-in-ruby-on-rails