example convertir python datetime time pytz

convertir - timedelta python example



La conversión de python datetime a timestamp y de vuelta en UTC aún usa la zona horaria local (3)

¿Estaría usted en la zona horaria CST de EE. UU. O su equivalente?

Parece que muestra qué hora era en UTC cuando tu hora local era la medianoche del 1/1/2007.

Estoy trabajando con un código que me da las marcas de tiempo utc y quiero convertirlas a las fechas apropiadas. Lamentablemente, cuando pruebo casos simples con pytz, la fecha y hora tiene un agregado de 6 horas (el desplazamiento de CST a UTC). Necesito mantener los datos de zona horaria correctos porque también estoy calculando la diferencia entre otras zonas horarias. ¿Alguna idea de por qué y cómo convertir una indicación de fecha y hora utc a una fecha y hora utc?

In [1]: import pytz In [2]: from datetime import datetime In [3]: import time In [4]: datetime.fromtimestamp(time.mktime(datetime(7,1,1, tzinfo=pytz.UTC).timetuple()), tz=pytz.UTC) Out[4]: datetime.datetime(2007, 1, 1, 6, 0, tzinfo=<UTC>) In [5]: datetime.fromtimestamp(time.mktime(datetime(7,1,1).utctimetuple()), tz=pytz.UTC) Out[5]: datetime.datetime(2007, 1, 1, 6, 0, tzinfo=<UTC>) In [6]: datetime.fromtimestamp(time.mktime(datetime(7,1,1).utctimetuple())) Out[6]: datetime.datetime(2007, 1, 1, 0, 0)


Para obtener un objeto datetime ingenuo que represente el tiempo en UTC de la marca de tiempo "segundos desde la época":

from datetime import datetime utc_dt = datetime.utcfromtimestamp(ts)

Si desea obtener un objeto datetime consciente para la zona horaria UTC:

import pytz aware_utc_dt = utc_dt.replace(tzinfo=pytz.utc)

Para convertirlo a alguna otra zona horaria:

tz = pytz.timezone(''America/Montreal'') dt = aware_utc_dt.astimezone(tz)

Para convertir la marca de tiempo en un objeto datetime consciente en la zona horaria dada directamente:

dt = datetime.fromtimestamp(ts, tz)