Conversión de objetos de fecha y hora a segundos en Python
Cuando se trabaja con objetos de fecha y hora en Python, a menudo resulta necesario convertirlos a segundos para varios fines analíticos. Sin embargo, es posible que el método toordinal() no proporcione el resultado deseado, ya que solo diferencia entre fechas con días distintos.
Para convertir con precisión un objeto de fecha y hora a segundos, particularmente para la fecha específica del 1 de enero de 1970, hay múltiples opciones disponibles. Para todas las demás fechas de inicio, deberá calcular la diferencia horaria entre las dos fechas.
Para el 1 de enero de 1970:
datetime.datetime.timestamp(): Este método devuelve directamente el número de segundos desde la época Unix, que corresponde a las 00:00:00 UTC del 1 de enero de 1970.
t = datetime.datetime(1970, 1, 1)
seconds = t.timestamp()
time.mktime(): La función time.mktime() también se puede utilizar para convertir un objeto de fecha y hora en segundos desde la época de Unix.
import time
t = datetime.datetime(1970, 1, 1)
time_struct = t.timetuple()
seconds = time.mktime(time_struct)
Para cualquier otra fecha de inicio:
timedelta.total_segundos (): Restar dos objetos de fecha y hora da como resultado un objeto delta de tiempo. El método total_segundos() de timedelta proporciona el número de segundos entre las dos fechas.
t = datetime.datetime(2009, 10, 21, 0, 0)
starting_date = datetime.datetime(1970, 1, 1)
seconds = (t - starting_date).total_seconds()
Es importante tener en cuenta que la fecha de inicio debe especificarse en UTC (hora universal coordinada) para obtener resultados precisos. Si su fecha y hora no está en UTC, deberá convertirla o adjuntar una clase tzinfo con el desplazamiento apropiado.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3