正如标题所暗示的那样,我不知道发生了什么。我的系统时区是 CST。在 Rails 的application.rb
文件中,我将time_zone设置为 CST (-6):
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
config.time_zone = 'Central Time (US & Canada)'
但是看看这串命令...不言自明。第三行(Time.new
)显示为具有-5偏移量(又名东部时间)??但是,调用utc_offset
显示它是 -6 偏移量(中央,哪个是正确的)?太糊涂了。帮助?
2.1.0 :001 > Time.now
=> 2014-12-10 12:10:32 -0600
2.1.0 :002 > Time.zone.now
=> Wed, 10 Dec 2014 12:10:37 CST -06:00
2.1.0 :003 > Time.new(2011, 3, 20)
=> 2011-03-20 00:00:00 -0500
2.1.0 :004 > Time.new(2011, 3, 20).utc_offset
=> -18000
这可能会导致夏令时。如果您查看正在使用的日期,您将看到另一个:
2.1.0 :003 > Time.new(2011, 3, 20)
是三月的第三周,DLS发生在三月(http://www.webexhibits.org/daylightsaving/b.html)的第二个星期日。