Dominando o Módulo datetime do Python: Datas, Horas, Timedelta & Strftime Explicados
A biblioteca datetime do Python oferece um conjunto robusto de ferramentas para manipular datas, horas e intervalos de tempo. Trabalhando com objetos em vez de strings brutas ou timestamps, desenvolvedores podem realizar cálculos precisos e formatação com confiança.
Classes Principais do datetime
- date — Lida com ano, mês e dia.
- time — Lida com hora, minuto, segundo e microssegundo, independente de data específica.
- datetime — Combina data e hora em um único objeto.
- timedelta — Representa uma duração, permitindo adição ou subtração de datas e horas.
- tzinfo — Base abstrata para suporte a fuso horário.
Começando: Importando e Instanciando
Antes de qualquer manipulação, importe as classes necessárias:
from datetime import date, time, datetime, timedelta
Instancie um objeto date:
today = date.today() print(today) # ex: 2024-04-19
Data e Hora Atuais
O método datetime.now() retorna a data e hora local atuais:
now = datetime.now() print(now) # 2024-04-19 14:35:12.123456
Para extrair apenas o componente de tempo:
current_time = now.time() print(current_time) # 14:35:12.123456
Formatando Saída com strftime
O método strftime converte objetos datetime em strings legíveis usando códigos de formato:
now.strftime("%Y-%m-%d %H:%M:%S") # "2024-04-19 14:35:12"
Diretivas comuns incluem:
%Y— Ano com quatro dígitos.%y— Ano com dois dígitos.%a— Nome abreviado do dia da semana.%A— Nome completo do dia da semana.%b— Nome abreviado do mês.%B— Nome completo do mês.%d— Dia do mês (01-31).%H— Hora (00-23).%I— Hora (01-12).%M— Minuto (00-59).%S— Segundo (00-59).%p— AM ou PM.
Exemplos:
# Formato 12-horas com AM/PM
print(now.strftime("%I:%M:%S %p"))
# Formato 24-horas
print(now.strftime("%H:%M"))
Trabalhando com timedelta
Um timedelta representa um intervalo de tempo. Suporta aritmética com datas e datetimes:
# Cria timedelta de 365 dias one_year = timedelta(days=365) # Um ano a partir de hoje future_date = datetime.now() + one_year print(future_date)
Calculando dias até um evento (ex: Ano Novo):
today = date.today()
new_year = date(today.year, 1, 1)
if new_year < today:
new_year = date(today.year + 1, 1, 1)
print("New Year is in", (new_year - today).days, "days")
else:
print("New Year is in", (new_year - today).days, "days")
Juntando Tudo
Abaixo está um script conciso, pronto para executar, que demonstra os recursos principais:
from datetime import datetime, date, timedelta
# Data e hora atuais
now = datetime.now()
print("Now:", now)
# Exemplos de formato
print("ISO format:", now.strftime("%Y-%m-%d %H:%M:%S"))
print("12-hour time:", now.strftime("%I:%M:%S %p"))
# Operações com timedelta
one_week = timedelta(weeks=1)
print("One week from now:", now + one_week)
# Dias até o Ano Novo
today = date.today()
new_year = date(today.year + (today < date(today.year, 1, 1)), 1, 1)
print("Days until New Year:", (new_year - today).days)
Resumo
O módulo datetime do Python equipa desenvolvedores com ferramentas poderosas e type-safe para manipulação de data e hora:
- Use objetos
date,timeedatetimepara representações claras e explícitas. - Aproveite
strftimepara formatação flexível e locale-aware. - Empregue
timedeltapara realizar aritmética e calcular intervalos. - Lembre-se de importar as classes relevantes antes do uso; caso contrário, o interpretador levantará erros.
Essas ferramentas são essenciais para tarefas que variam de simples timestamping a lógica complexa de agendamento.
python
- Dominando datetime do Python: Guia Prático de Datas, Horários e Fusos Horários
- Obter Data e Hora Atuais em Python: Guia Prático
- Python: Obter Hora Atual e Dados de Fuso Horário com Facilidade
- Dominando o Módulo time do Python: Funções, Structs e Exemplos Práticos
- Dominando time.sleep() do Python: Boas Práticas, Multithreading e Exemplos Reais
- Função Print() do Python: Guia Prático com Exemplos
- Domine o str.count() do Python: Como Contar Caracteres e Substrings com Exemplos
- Domine Strings format() em Python com Exemplos Claros
- Domine o Método String.find() do Python: Sintaxe, Exemplos e Alternativas
- Dominando Funções Lambda em Python: Exemplos Práticos e Boas Práticas