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)
为什么会这样?有没有更好的办法?
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)
为什么会这样?有没有更好的办法?
1941 年之前加尔各答的时区似乎比 UTC 早 5 小时 53 分钟。
如果您使用比那晚一年(例如 2000 年)而不是 0 年,您应该得到您期望的结果。
由于夏令时,您无法真正将 UTC 时间转换为本地时间,夏季和冬季 8:00UTC 可以转换为不同的本地时间。为了自动转换以给出正确的结果,您需要一个完整的日期,而不仅仅是一个时间。