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より53分進んだ5時間だったようです。
0年ではなく、それより1年後の年(たとえば2000年)を使用すると、期待どおりの結果が得られるはずです。
夏時間のため、UTC時刻を現地時間に実際に変換することはできません。8:00UTCは夏と冬の異なる現地時間に変換できます。自動変換で正しい結果を得るには、時間だけでなく完全な日付が必要です。