0
Time.zone = 'Asia/Kolkata'
Time.zone 
=> (GMT+05:30) Asia/Kolkata

Time.zone 已正确设置。

Time.zone.parse('0000-01-01 03:00:00 UTC').strftime('%l:%M %p')
=> " 8:53 AM"

应用了不正确的偏移量(+05:33 与 +05:30)

为什么会这样?有没有更好的办法?

4

1 回答 1

1

1941 年之前加尔各答的时区似乎比 UTC 早 5 小时 53 分钟。

如果您使用比那晚一年(例如 2000 年)而不是 0 年,您应该得到您期望的结果。

由于夏令时,您无法真正将 UTC 时间转换为本地时间,夏季和冬季 8:00UTC 可以转换为不同的本地时间。为了自动转换以给出正确的结果,您需要一个完整的日期,而不仅仅是一个时间。

于 2013-01-12T12:23:22.807 回答