2011-11-06 51 views
2

我有一个与Rails 3.1.1应用程序的时区行为有关的问题。这里,我做的事我控制台上:Rails 3.1.1时区行为

(rdb:1) Time.zone = "Amsterdam" 
"Amsterdam" 
(rdb:1) Time.zone.parse("Sun, 06 Nov 2011 13:05:18 +0000") 
Sun, 06 Nov 2011 14:05:18 CET +01:00 
(rdb:1) Time.zone = "Atlantic Time (Canada)" 
"Atlantic Time (Canada)" 
(rdb:1) Time.zone.parse("Sun, 06 Nov 2011 13:05:18 +0000") 
Sun, 06 Nov 2011 09:05:18 AST -04:00 

我对象的时间戳是UTC。在我的阿姆斯特丹时区,当我创建它时是14:05。在纽约市,时区是“大西洋时间(加拿大)”。分析该区域中的时间戳结果为09:05。但那是错的,应该是08:05。

除了两个区域之间的时间差似乎是-4 -1 = -5,实际上却是-6小时。

该行为完全破坏了我的应用行为。我在这里做错了什么?

Registers Felix。

回答

2

你没有做错什么。今天,11月6日凌晨2点,DST发生了变化。所以时间是9点05分,而不是8点05分。另外,纽约在东部时间,而不是大西洋时间。

+0

地狱,我们在2周前更改了DST。我不知道之间有差距。所以昨天纽约时报仍然在加拿大大西洋时间,今天它不再是......对吧? – GeorgieF

+0

我不知道差距,但这是可能的。至于纽约时区,始终是EST/EDT,绝不是AST/ADT。所以,纽约市在11月6日之前在美国东部时间,现在在美国东部时间。美国东部时间/东部时间的“东部”是这里的关键词。 – Zabba

+0

Thx为您的提示。 – GeorgieF