I fusi orari cambiano nel corso degli anni. Secondo http://www.prokerala.com/travel/timezones/Asia/Kolkata?mode=history l'offset originale per quella zona era 5.88888888889 ore, o 5 ore 53 minuti. pytz
utilizzerà l'offset e la nomenclatura corretti dopo aver assegnato la zona a una data effettiva.
>>> tz = pytz.timezone("Asia/Calcutta")
>>> tz
<DstTzInfo 'Asia/Calcutta' HMT+5:53:00 STD>
>>> tz.localize(datetime.datetime(1901, 7, 10, 12, 0))
datetime.datetime(1901, 7, 10, 12, 0, tzinfo=<DstTzInfo 'Asia/Calcutta' HMT+5:53:00 STD>)
>>> tz.localize(datetime.datetime(2012, 7, 10, 12, 0))
datetime.datetime(2012, 7, 10, 12, 0, tzinfo=<DstTzInfo 'Asia/Calcutta' IST+5:30:00 STD>)
fonte
2012-07-11 22:38:15
credo offset più folli erano molto più vicino alla realtà: Kolkata longitudine: 88.369 gradi. Ora per ottenere l'offset dell'ora: (88.369/180) x12 = 5.89 che si traduce approssimativamente in 5 ore e 53 minuti. Certo, la realtà deve aver reso la vita difficile per tutti, quindi compensazioni arrotondate ora. – tigeronk2
Questo non è un offset di tempo che è stato effettivamente promulgato dalla legge. È semplicemente un riflesso di [Local Mean Time (LMT)] (https://en.wikipedia.org/wiki/Local_mean_time) per la regione coperta dalla zona. Puoi vedere questo nei dati di origine tz [qui] (https://github.com/eggert/tz/blob/2017b/asia#L891). –