Datas em Python: guia completo do módulo datetime

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O módulo datetime em Python oferece ferramentas poderosas para trabalhar com datas e horas. Esta biblioteca é essencial para criar relatórios, análises, agendar eventos e processar timestamps em qualquer projeto de software.

Fundamentos do módulo datetime

Importação e classes principais

O módulo datetime faz parte da biblioteca padrão do Python e não requer instalação adicional:

import datetime
from datetime import date, time, datetime, timedelta, timezone

Classes principais do módulo:

  • datetime.date — trabalha com datas (ano, mês, dia)
  • datetime.time — trabalha com horas (hora, minuto, segundo)
  • datetime.datetime — combina data e hora
  • datetime.timedelta — representa a diferença entre datas/horas
  • datetime.timezone — trabalha com fusos horários

Obtendo data e hora atuais

from datetime import datetime, date

# Data e hora atuais
now = datetime.now()
print(f"Data e hora atuais: {now}")

# Apenas a data atual
today = date.today()
print(f"Data de hoje: {today}")

Criando e manipulando datas

Criação manual de datas

from datetime import date, datetime

# Criando uma data específica
custom_date = date(2025, 5, 9)
print(f"Data definida: {custom_date}")

# Criando data e hora
custom_datetime = datetime(2025, 5, 9, 14, 30, 45)
print(f"Data e hora definidas: {custom_datetime}")

Extraindo componentes da data

today = date.today()
print(f"Ano: {today.year}")
print(f"Mês: {today.month}")
print(f"Dia: {today.day}")
print(f"Dia da semana: {today.weekday()}")  # 0 = segunda-feira, 6 = domingo

Trabalhando com horas

Criação e manipulação de objetos de hora

from datetime import time

# Criando uma hora
custom_time = time(14, 30, 45)
print(f"Hora definida: {custom_time}")

# Extraindo componentes da hora
print(f"Horas: {custom_time.hour}")
print(f"Minutos: {custom_time.minute}")
print(f"Segundos: {custom_time.second}")

Obtendo hora com microssegundos

from datetime import datetime

now = datetime.now()
print(f"Hora com microssegundos: {now}")
print(f"Microssegundos: {now.microsecond}")

Operações aritméticas com datas

Usando timedelta

from datetime import date, datetime, timedelta

# Operações com datas
today = date.today()
tomorrow = today + timedelta(days=1)
last_week = today - timedelta(weeks=1)
next_month = today + timedelta(days=30)

print(f"Amanhã: {tomorrow}")
print(f"Semana passada: {last_week}")
print(f"Próximo mês: {next_month}")

# Operações mais complexas
future_date = today + timedelta(days=100, hours=5, minutes=30)
print(f"Daqui a 100 dias, 5 horas e 30 minutos: {future_date}")

Calculando a diferença entre datas

from datetime import date, datetime

start_date = date(2025, 1, 1)
end_date = date(2025, 12, 31)

# Diferença em dias
difference = end_date - start_date
print(f"Diferença em dias: {difference.days}")

# Diferença em segundos para datetime
start_time = datetime(2025, 5, 9, 10, 0, 0)
end_time = datetime(2025, 5, 9, 15, 30, 45)

time_diff = end_time - start_time
print(f"Diferença em segundos: {time_diff.total_seconds()}")
print(f"Diferença em horas: {time_diff.total_seconds() / 3600}")

Formatação de datas e horas

Método strftime

from datetime import datetime

now = datetime.now()

# Vários formatos
print(now.strftime("%d/%m/%Y"))  # Exemplo: 09/05/2025
print(now.strftime("%H:%M:%S"))  # Exemplo: 14:30:45
print(now.strftime("%A, %d de %B de %Y"))  # Exemplo: Sexta-feira, 09 de Maio de 2025

Blogs

Book Recommendations