0

我正在使用 Ruby on Rails 开发包含时区转换的应用程序。发现了一件有趣的事情:现在是 2013 年 3 月 26 日,我将时区设置为雅典,它似乎已经在 DST(Time.zone 显示 GMT +2 雅典,但格式化时间显示 +0300)。然后我改成开罗时间,格式化的时间又回到+0200

但是,根据http://www.timeanddate.com/time/dst/2013.html,夏令时更改应该发生在 3 月 31 日。它不应该在 DST 中。

这是Ruby中的错误,还是我犯了一个错误?

编辑:我从数据库中格式化了一个日期时间,即 April.1。所以程序格式化了那个时间并为“那个”日期时间显示 DST,而不是在当前时间显示它。

我的错。谢谢你们

4

1 回答 1

1

我怀疑您看到的 UTC 节日不是您所期望的。如果您正在查看时区,我相信 DST 的 UTC 偏移量不会改变,但如果您处理特定时间并询问 UTC 偏移量,您会看到您所期望的。

> ActiveSupport::TimeZone['Athens'].now.utc_offset
=> 7200

> (ActiveSupport::TimeZone['Athens'].now+1.week).utc_offset
=> 10800
于 2013-03-26T03:52:43.257 回答