Pular para o conteúdo

Obtendo o timestamp no Python: facilitando o uso

[

Como obter e usar a hora atual em Python

por Ian Currie, 4 comentários

Uma das coisas mais básicas ao trabalhar com datas e horários em Python é obter a hora atual. Isso é especialmente útil para criar timestamps em suas aplicações. Neste tutorial, você aprenderá como obter, exibir e formatar a hora atual utilizando o módulo datetime.

Para utilizar a hora atual de forma eficaz em suas aplicações Python, você aprenderá algumas ferramentas úteis. Por exemplo, você aprenderá como obter atributos da hora atual, como o ano, minutos ou segundos. Para tornar a hora mais legível, você explorará opções de impressão. Além disso, você conhecerá diferentes formatos de hora e aprenderá como os computadores representam o tempo, como serializar o tempo e como lidar com fusos horários.

Como obter a hora em Python

A forma mais direta de obter e exibir a hora atual é utilizar o método de classe .now() da classe datetime no módulo datetime:

from datetime import datetime
now = datetime.now()
print(now)

O método de classe .now() é um método construtor que retorna um objeto datetime. Quando você avalia a variável now, obtém uma representação do objeto datetime. Essa representação pode ser difícil de entender, pois é composta por números. No entanto, ao imprimir explicitamente a variável now, você obtêm uma saída um pouco diferente, apresentando as informações em um formato de timestamp familiar.

Observação: O objeto datetime retornado aqui não possui um fuso horário definido. Normalmente, o sistema operacional é capaz de resolver corretamente o fuso horário, mas o objeto datetime em si atualmente não possui informações de fuso horário. Veremos objetos com fuso horário em uma seção posterior deste tutorial.

Você pode reconhecer o formato do objeto datetime impresso. Ele segue de perto um padrão internacional de formatação de datas e horas chamado ISO 8601. Esse formato é amplamente utilizado em diversos contextos.

No entanto, há uma pequena diferença entre o formato padrão do Python e o padrão ISO 8601. O padrão ISO 8601 diz que a parte da data e a parte da hora devem ser separadas pelo caractere T, mas o objeto datetime padrão do Python, quando passado para a função print(), as separa com um espaço.

Python permite personalizar o formato de impressão do timestamp. A classe datetime usa internamente o método .isoformat() para imprimir o timestamp. Como .isoformat() é um método de instância, você pode chamá-lo diretamente em qualquer objeto datetime para personalizar o formato ISO:

print(datetime.now().isoformat())

Esse código imprimirá a hora no formato ISO 8601, com a parte da data e da hora separadas por “T”.

Dessa forma, você pode obter e imprimir a hora atual em Python. Nos próximos tópicos, veremos como formatar timestamps para torná-los mais legíveis, como obter o tempo atual em formato Unix e como lidar com objetos de hora e data com informações de fuso horário.

Como formatar timestamps para legibilidade

Ao lidar com timestamps, é comum querer formatá-los de maneira legível para os usuários finais. O módulo datetime oferece várias opções para formatação de timestamps. Vamos explorar algumas delas.

Formatando timestamps para strings

Uma opção simples para formatar um timestamp é utilizar o método .strftime() da classe datetime. Esse método permite especificar um formato de string para a data e hora atual. Segue um exemplo de como utilizar essa função:

from datetime import datetime
now = datetime.now()
formatted_time = now.strftime("%d/%m/%Y %H:%M:%S")
print(formatted_time)

Nesse exemplo, utilizamos o formato "%d/%m/%Y %H:%M:%S" para obter a data atual no formato “DD/MM/AAAA HH:MM:SS ”.

Obtendo partes específicas da hora atual

Além de formatar a hora atual como uma string completa, você também pode acessar partes específicas, como o ano, mês, dia, hora, minuto e segundo. Para isso, você pode utilizar os atributos da classe datetime. Segue um exemplo:

from datetime import datetime
now = datetime.now()
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second
print(f"Ano: {year}")
print(f"Mês: {month}")
print(f"Dia: {day}")
print(f"Hora: {hour}")
print(f"Minuto: {minute}")
print(f"Segundo: {second}")

Este código imprimirá as partes especifícas da data e hora atual. Por exemplo, você verá algo como:

Ano: 2022
Mês: 11
Dia: 22
Hora: 14
Minuto: 31
Segundo: 59

Obtendo um timestamp UNIX

Outro formato comum de timestamp é o Unix timestamp, que representa o número de segundos desde a meia-noite de 1º de janeiro de 1970. O Python facilita a obtenção desse tipo de timestamp. Você pode utilizar o método .timestamp() da classe datetime para isso. Segue um exemplo:

from datetime import datetime
now = datetime.now()
timestamp = now.timestamp()
print(timestamp)

Esse código imprimirá um número decimal que representa o Unix timestamp.

Conclusão

Neste tutorial, você aprendeu como obter e utilizar a hora atual em Python. Você explorou como ler atributos da hora atual, como exibir a hora atual de forma legível e como formatar timestamps. Além disso, você aprendeu sobre o formato ISO 8601 e como obter timestamps em formato Unix. Agora você está pronto para usar a hora atual em suas aplicações Python de forma eficaz.