Converter época para data em Python
-
Utilize o módulo
time
para converter a época para a data em Python -
Use o módulo
datetime
para converter Epoch em Datetime em Python
Este tutorial irá introduzir como converter segundos de época para o formato de data em Python.
Epoch é um termo para o número de segundos que decorreram desde a data da época - 1 de Janeiro de 1970. O ano de 1970 é a data de lançamento do sistema operativo UNIX. O tempo de época é também chamado alternativamente de UNIX timestamp.
Por exemplo, a época para a data de 25 de Novembro de 2020 (00:00:00) seria 1606262400
, que é o número de segundos que decorreram desde 1970/01/01 até essa data.
Utilize o módulo time
para converter a época para a data em Python
O módulo Python time
fornece funções convenientes relacionadas com o tempo. A função fornece um grande suporte para cálculos relacionados com os carimbos de tempo UNIX.
Por exemplo, a função time.localtime()
aceita epoch segundos como argumento e gera uma sequência de valores de tempo que consiste em 9 sequências de tempo.
Vamos utilizar um tempo de época aleatório para este exemplo.
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()
produz um tuple struct_time()
com os detalhes do tempo da época contendo o ano exacto, mês, dia, e outros detalhes do tempo da data que o tempo da época contém.
O módulo time
tem outra função time.strftime()
para converter o tuple num formato de data/hora.
A função aceita 2 argumentos, o primeiro argumento é uma string contendo o formato especificado para a conversão, e o segundo argumento é o struct_time()
tuple.
Agora, converta o mesmo exemplo de tempo de época acima num formato de data/hora legível.
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
Para além deste formato, outro formato genérico de data seria o nome completo do mês e incluindo o dia da semana. Vamos experimentar isso.
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
Outro formato útil em strftime()
que só precisa de um único caracter é %c
, que é a representação genérica de data e 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
Use o módulo datetime
para converter Epoch em Datetime em Python
datetime
é outro módulo em Python que suporta funções relacionadas com o tempo. A diferença é que o módulo time
centra-se em carimbos horários Unix enquanto que o módulo datetime
suporta uma vasta gama de funções de data e hora enquanto ainda suporta muitas das operações que o módulo time
tem.
O módulo datetime
tem a função fromtimestamp()
, que aceita segundos de época e um objecto datetime
.
Vamos experimentar um segundo exemplo de época diferente para este módulo.
datetime
é repetida intencionalmente duas vezes. Dentro do módulo datetime
é um objecto datetime
com a função fromtimestamp()
. O date
e o time
são também objectos dentro do módulo datetime
.import datetime
epoch_time = 561219765
time_val = datetime.datetime.fromtimestamp(epoch_time)
print("Date:", time_val)
Se datetime.datetime
é exclusivamente o objecto que está a ser utilizado dentro do módulo datetime
, então importe-o do módulo para evitar que o código pareça redundante.
from datetime import datetime
Resultado:
Date: 1987-10-14 22:22:45
Para converter o datetime noutro formato, datetime()
também tem a função utilitária strftime()
que fornece a mesma funcionalidade 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
Em resumo, estas são as duas principais formas de converter a época para o formato datetime em Python. Ambos os módulos time
e datetime
fornecem funções que podem ser convenientemente utilizadas para a conversão de data/hora.
Ambos os módulos têm a função strftime()
, que é uma forma conveniente de formatação de datas.
Aqui está uma referência para se familiarizar com formatos de data/hora em Python, para poder personalizar a formatação de datas utilizando 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