Rails 3.1.1时区行为

时间:2011-11-06 14:05:34

标签: 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 (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小时。

这种行为彻底摧毁了我的应用行为。我在这里做错了什么?

此致 菲利克斯。

1 个答案:

答案 0 :(得分:2)

你没有做错任何事。 DST今天11月6日凌晨2点改变了。所以时间是9:05,而不是8:05。此外,纽约是东部时间,而不是大西洋时间。