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: