2012-07-13 12 views
30
>>> import pytz 
>>> pytz.timezone('Asia/Hong_Kong') 
<DstTzInfo 'Asia/Hong_Kong' LMT+7:37:00 STD> 

¿Desplazamiento de siete horas y 37 minutos? Esto es un poco extraño, ¿alguien experimenta el mismo problema?Problema de zona horaria raro con pytz

De hecho me estoy poniendo un comportamiento diferente entre

import pytz 
from datetime import datetime 
hk = pytz.timezone('Asia/Hong_Kong') 

dt1 = datetime(2012,1,1,tzinfo=hk) 
dt2 = hk.localize(datetime(2012,1,1)) 
if dt1 > dt2: 
    print "Why?" 
+0

¿cuál es el problema con ser preciso? ['La hora de Hong Kong se estableció por primera vez en Tiempo medio local (GMT + 7: 36: 41) el 1 de enero de 1885 a las 13:00 por el entonces Observatorio Real de Hong Kong'] (http://en.wikipedia.org/ wiki/Hong_Kong_Time # Time_standards) – KurzedMetal

+0

Ver http://stackoverflow.com/questions/11442183/pytz-timezone-shows-weird-results-for-asia-calcutta/11442571#11442571 –

Respuesta

43

Las zonas horarias y las compensaciones cambiar a lo largo de los años. El nombre y el desplazamiento predeterminados de la zona que se entregan cuando pytz crea un objeto de zona horaria son los primeros disponibles para esa zona, y en ocasiones pueden parecer extraños. Cuando utiliza localize para adjuntar la zona a una fecha, se sustituyen el nombre de la zona y el desplazamiento correctos. Simplemente usar el constructor datetime para adjuntar la zona a la fecha no le permite ajustarse correctamente.