Time.new 时区不同于系统或config.time_zone



正如标题所暗示的那样,我不知道发生了什么。我的系统时区是 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)的第二个星期日。

相关内容

  • 没有找到相关文章

最新更新