Ruby on rails Rails 3.1.1时区行为

Ruby on rails Rails 3.1.1时区行为,ruby-on-rails,time,timezone,Ruby On Rails,Time,Timezone,我有一个与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 (Cana

我有一个与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小时

这种行为完全破坏了我的应用程序行为。我做错了什么

问候
费利克斯。

你没有做错什么。DST于今天11月6日凌晨2点更改。所以时间是9:05,而不是8:05。另外,纽约是东部时间,不是大西洋时间。

见鬼,我们两周前换了DST。我不知道两者之间有差距。所以昨天纽约仍然在大西洋时间加拿大,今天它不再是。。。对吧?我不知道差距,但这是可能的。至于纽约时区,它总是EST/EDT,而不是AST/ADT。所以,纽约在11月6日之前是东部夏令时,现在是东部夏令时。EDT/EST中的“东部”是这里的关键词。