Módulo datetime em Python
O módulo datetime oferece as principais ferramentas para manipulação de datas e horários no Python. Ele organiza suas funcionalidades em três classes principais:
date: Trabalha exclusivamente com datas (ano, mês e dia).time: Manipula horários (hora, minuto, segundo e microssegundo).datetime: Combina recursos de data e horário em um único objeto.
Classe date
A classe date, disponível no módulo datetime, é usada para criar e manipular objetos que representam apenas datas. Seu construtor tem a seguinte sintaxe:
date(year, month, day)Vamos ver um exemplo de criação de uma data:
import datetime
yesterday = datetime.date(2017, 5, 2)
print(yesterday) # Saída: 2017-05-02O método today() retorna a data do sistema no momento da execução:
from datetime import date
today = date.today()
print(today) # Exemplo de saída: 2024-11-15
print(f"{today.day}.{today.month}.{today.year}") # Exemplo de saída: 15.11.2023Os atributos day, month e year permitem acessar, respectivamente, o dia, mês e ano da data.
Classe time
A classe time é dedicada à manipulação de horários, como horas, minutos, segundos e microssegundos. Seu construtor possui a seguinte sintaxe:
time([hour], [minute], [second], [microsecond])Caso algum parâmetro não seja fornecido, ele assume o valor padrão 0.
Exemplos de criação de um objeto time com diferentes parâmetros passados para o construtor:
from datetime import time
current_time = time()
print(current_time) # Saída: 00:00:00
current_time = time(16, 25)
print(current_time) # Saída: 16:25:00
current_time = time(16, 25, 45)
print(current_time) # Saída: 16:25:45Classe datetime
A classe datetime combina as funcionalidades de date e time, permitindo trabalhar com datas e horários simultaneamente. Seu construtor é definido como:
datetime(year, month, day, [hour], [minute], [second], [microsecond])Os três primeiros parâmetros (ano, mês e dia) são obrigatórios; os demais são opcionais e têm como valor padrão 0.
Exemplos de criação de objetos datetime:
from datetime import datetime
deadline = datetime(2017, 5, 10)
print(deadline) # Saída: 2017-05-10 00:00:00
deadline = datetime(2017, 5, 10, 4, 30)
print(deadline) # Saída: 2017-05-10 04:30:00Obtendo a data e hora atuais
O método now() retorna a data e hora do sistema.
from datetime import datetime
now = datetime.now()
print(now) # Exemplo de saída: 2023-11-15 11:18:56.239443
print(f"{now.day}.{now.month}.{now.year} {now.hour}:{now.minute}") # Saída: 15.11.2023 11:18
print(now.date()) # Retorna apenas a data: 2023-11-15
print(now.time()) # Retorna apenas o horário: 11:18:56.239443Os atributos como day, month, year, hour, minute e second permitem acessar informações específicas da data e do horário.
Conversão de String para Data e Hora
O método strptime() da classe datetime permite converter uma string em um objeto datetime, utilizando um formato específico. Sua sintaxe é a seguinte:
strptime(string, format)string: Representa a data e/ou hora.format: Define o formato da string.
Formatos comuns:
%d: Dia do mês (número de 01 a 31).%m: Número do mês (01 a 12).%y: Ano com dois dígitos (ex.: 23 para 2023).%Y: Ano com quatro dígitos (ex.: 2023).%H: Hora no formato 24 horas.%M: Minuto.%S: Segundo.
Exemplos de conversão de string para data e hora:
from datetime import datetime
deadline = datetime.strptime("22/05/2017", "%d/%m/%Y")
print(deadline) # Saída: 2017-05-22 00:00:00
deadline = datetime.strptime("22/05/2017 12:30", "%d/%m/%Y %H:%M")
print(deadline) # Saída: 2017-05-22 12:30:00
deadline = datetime.strptime("05-22-2017 12:30", "%m-%d-%Y %H:%M")
print(deadline) # Saída: 2017-05-22 12:30:00Documentação oficial: