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 vs +05:30)
为什么会这样?还有更好的方法吗?
答案 0 :(得分:1)
The time zone in Calcutta before 1941似乎比UTC早5小时53分钟。
如果你使用的时间晚于一年(例如2000年)而不是0年,你应该得到你期望的结果。
由于夏令时,您无法将UTC时间真正转换为当地时间,8:00UTC可以在夏季和冬季转换为不同的当地时间。要自动转换以获得正确的结果,您需要一个完整的日期,而不仅仅是一个时间。