Convertir Epoch a Datetime en Python
-
Usar el módulo
time
para convertir Epoch a Datetime en Python -
Usa el módulo
datetime
para convertir la época en Datetime en Python
Este tutorial introducirá cómo convertir los segundos de época al formato de fecha y hora en Python.
Época es un término para el número de segundos que han transcurrido desde la fecha de la época, el 1 de enero de 1970. El año 1970 es la fecha de lanzamiento del sistema operativo UNIX. El tiempo de época también se denomina alternativamente como marca de tiempo de UNIX.
Por ejemplo, la época para la fecha del 25 de noviembre de 2020 (00:00:00) sería 1606262400
, que es el número de segundos que han transcurrido desde el 1 de enero de 1970 hasta esa fecha.
Usar el módulo time
para convertir Epoch a Datetime en Python
El módulo Python time
proporciona convenientes funciones relacionadas con el tiempo. La función proporciona un gran soporte para los cálculos relacionados con las marcas de tiempo de UNIX.
Por ejemplo, la función time.localtime()
acepta los segundos de época como argumento y genera una secuencia de valores de tiempo que consiste en 9 secuencias de tiempo.
Usemos un tiempo de época aleatorio para este ejemplo.
import time
epoch_time = 1554723620
time_val = time.localtime(epoch_time)
print("Date in time_struct:", time_val)
Resultado:
Date in time_struct: time.struct_time(tm_year=2019, tm_mon=4, tm_mday=8, tm_hour=19, tm_min=40, tm_sec=20, tm_wday=0, tm_yday=98, tm_isdst=0)
localtime()
produce una tupla struct_time()
con los detalles de la hora de época que contiene el año, el mes, el día y otros detalles de fecha y hora que contiene la hora de época.
El módulo time
tiene otra función time.strftime()
para convertir la tupla en un formato de fecha y hora.
La función acepta 2 argumentos, el primer argumento es una cadena que contiene el formato especificado para la conversión, y el segundo argumento es la struct_time()
tupla.
Ahora, convierte el mismo ejemplo de época y hora de arriba en un formato de fecha y hora legible.
import time
epoch_time = 1554723620
time_formatted = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(epoch_time))
print("Formatted Date:", time_formatted)
Resultado:
Formatted Date: 2019-04-08 19:40:20
Aparte de este formato, otro formato de fecha genérico sería el nombre completo del mes e incluiría el día de la semana. Probemos eso.
import time
epoch_time = 1554723620
time_formatted = time.strftime("%A, %B %-d, %Y %H:%M:%S", time.localtime(epoch_time))
print("Formatted Date:", time_formatted)
Formatted Date: Monday, April 8, 2019 19:40:20
Otro formato útil en strftime()
que sólo necesita un único carácter es %c
, que es la representación genérica de la fecha y la hora para Locale.
time_formatted = time.strftime("%c", time.localtime(epoch_time))
print("Formatted Date:", time_formatted)
Resultado:
Formatted Date: Mon Apr 8 19:40:20 2019
Usa el módulo datetime
para convertir la época en Datetime en Python
datetime
es otro módulo en Python que soporta funciones relacionadas con el tiempo. La diferencia es que el módulo time
se centra en las marcas de tiempo de Unix mientras que datetime
soporta un amplio rango de funciones de fecha y hora mientras que sigue soportando muchas de las operaciones que el módulo time
tiene.
datetime
tiene la función fromtimestamp()
que acepta segundos de época y un objeto datetime
.
Probemos un segundo ejemplo de época diferente para este módulo.
datetime
se repite intencionalmente dos veces. Dentro del módulo datetime
hay un objeto datetime
con la función fromtimestamp()
. date
y time
también son objetos dentro del módulo datetime
.import datetime
epoch_time = 561219765
time_val = datetime.datetime.fromtimestamp(epoch_time)
print("Date:", time_val)
Si datetime.datetime
es exclusivamente el objeto que se está utilizando dentro del módulo datetime
, entonces impórtelo desde el módulo para evitar que el código parezca redundante.
from datetime import datetime
Resultado:
Date: 1987-10-14 22:22:45
Para convertir la datetime a otro formato, datetime()
también tiene la función de utilidad strftime()
que proporciona la misma funcionalidad que time.strftime()
.
import datetime
epoch_time = 561219765
time_formatted = datetime.datetime.fromtimestamp(epoch_time).strftime(
"%A, %B %-d, %Y %H:%M:%S"
)
print("Formatted Date:", time_formatted)
Resultado:
Formatted Date: Wednesday, October 14, 1987 22:22:45
En resumen, estas son las dos formas principales de convertir la época al formato datetime en Python. Tanto el módulo time
como el módulo datetime
proveen funciones que pueden ser convenientemente usadas para la conversión datetime.
Ambos módulos tienen la función strftime()
, que es una forma conveniente de formatear las fechas.
Aquí hay una referencia para familiarizarse con los formatos de fecha y hora en Python para poder personalizar el formato de la fecha usando strftime()
.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn