utils timezones mexico python django datetime timezone pytz

python - timezones - Conversión de hora y hora con pytz: comportamiento alucinante



timezone django (1)

Estoy tratando de convertir el objeto de datetime y datetime zona horaria a UTC y luego volver a su zona horaria original. Tengo un fragmento siguiente

t = datetime( 2013, 11, 22, hour=11, minute=0, tzinfo=pytz.timezone(''Europe/Warsaw'') )

ahora en ipython:

In [18]: t Out[18]: datetime.datetime( 2013, 11, 22, 11, 0, tzinfo=<DstTzInfo ''Europe/Warsaw'' WMT+1:24:00 STD> )

y ahora tratemos de hacer la conversión a UTC y viceversa. Espero tener la misma representación que:

In [19]: t.astimezone(pytz.utc).astimezone(pytz.timezone(''Europe/Warsaw'')) Out[19]: datetime.datetime( 2013, 11, 22, 10, 36, tzinfo=<DstTzInfo ''Europe/Warsaw'' CET+1:00:00 STD> )

Sin embargo, vemos que Out[18] y Out[19] difieren. ¿Que esta pasando?


La documentación http://pytz.sourceforge.net/ indica "Desafortunadamente, el uso del argumento tzinfo de los constructores de fecha y hora estándar ''no funciona'' con pytz para muchas zonas horarias". El código:

t = datetime( 2013, 5, 11, hour=11, minute=0, tzinfo=pytz.timezone(''Europe/Warsaw'') )

no funciona de acuerdo con esto, en su lugar, debe utilizar el método de localización:

t = pytz.timezone(''Europe/Warsaw'').localize( datetime(2013, 5, 11, hour=11, minute=0))