2012-07-11 13 views

Respuesta

18

Las zonas horarias cambian a lo largo de los años. De acuerdo con http://www.prokerala.com/travel/timezones/Asia/Kolkata?mode=history, el desplazamiento original para esa zona fue 5.88888888889 horas, o 5 horas 53 minutos. pytz utilizará la compensación y la nomenclatura correctas una vez que asigne la zona a una fecha real.

>>> 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>) 
+3

Creo que las compensaciones más locas estaban mucho más cerca de la realidad: longitud de Kolkata: 88.369 grados. Ahora para obtener la compensación de tiempo: (88.369/180) x12 = 5.89 que se traduce aproximadamente a 5 horas y 53 minutos. Por supuesto, la realidad debe haber hecho la vida más difícil para todos, por lo tanto, compensaciones redondeadas ahora. – tigeronk2

+0

Eso no es una compensación de tiempo que en realidad fue promulgada por ley. Es simplemente un reflejo de [Tiempo medio local (LMT)] (https://en.wikipedia.org/wiki/Local_mean_time) para la región cubierta por la zona. Puede ver esto en los datos de la fuente tz [aquí] (https://github.com/eggert/tz/blob/2017b/asia#L891). –

Cuestiones relacionadas