Python Datetime: trabalhando com datas e horas
Aprenda como lidar com datas, horas, fusos horários e cálculos em Python. Domine a formatação, análise e aritmética usando datetime e timedelta.
Visão geral
Lidar com datas e horas é um desafio notório no desenvolvimento de software, devido aos anos bissextos, aos ajustes de horário de verão e aos diferentes formatos de fuso horário. Python resolve esses desafios com seu módulo `datetime` integrado. Este módulo fornece um conjunto robusto de classes de objetos — como `date`, `time`, `datetime` e `timezone` — que representam e manipulam dados temporais de forma limpa, simplificando os cálculos de datas.
Uma das tarefas mais comuns é converter datas em strings (formatação) e strings em datas (análise). Python usa dois métodos principais para isso: `.strftime()` (formato de string hora) converte um objeto datetime em uma string legível usando códigos de formatação (como `%Y` para ano, `%m` para mês e `%d` para dia). Por outro lado, `datetime.strptime()` (tempo de análise de string) analisa uma entrada de string bruta em um objeto datetime com base em um modelo de formato correspondente, o que é vital ao ler logs ou entradas de API.
A execução de cálculos de datas também é totalmente suportada usando o objeto `timedelta`. Um `timedelta` representa uma duração de tempo (por exemplo, 7 dias, 4 horas). Você pode adicionar ou subtrair um `timedelta` de um `datetime` para calcular datas passadas ou futuras (como determinar uma data de expiração). Ao trabalhar com vários fusos horários, o uso de objetos com reconhecimento de fuso horário (como `zoneinfo` ou `timezone.utc`) é fundamental para garantir que as comparações de datas permaneçam precisas em diferentes locais de servidor.
Saída de código e execução
Analisando strings em objetos datetime e calculando prazos futuros usando timedelta.
from datetime import datetime, timedelta
# Define a specific fixed base date and time (for deterministic runs)
base_date = datetime(2026, 5, 25, 23, 45, 50)
print(f"Base Date/Time: {base_date}")
# Format datetime as string
formatted = base_date.strftime("%Y-%m-%d %H:%M:%S")
print(f"Formatted String: {formatted}")
# Parse string to datetime
date_str = "2026-12-25"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d")
print(f"Parsed Date: {parsed_date}")
# Date arithmetic with timedelta
ten_days_later = base_date + timedelta(days=10)
print(f"Date 10 days later: {ten_days_later.strftime('%Y-%m-%d')}")Base Date/Time: 2026-05-25 23:45:50
Formatted String: 2026-05-25 23:45:50
Parsed Date: 2026-12-25 00:00:00
Date 10 days later: 2026-06-04Implementação passo a passo
- Cálculo da expiração do teste e datas de cobrança
- Analisando strings de carimbo de data/hora nos logs de acesso do servidor
- Agendamento de cron jobs automatizados ou relatórios recorrentes
Perguntas frequentes
O que é um objeto datetime ingênuo versus consciente?
Um objeto datetime ingênuo não contém informações de fuso horário, enquanto um objeto datetime consciente inclui compensações de fuso horário, tornando-o seguro para cálculos de horário internacional.
Como calculo a diferença entre duas datas?
Subtrair um objeto datetime de outro retorna um objeto timedelta que representa a duração exata entre eles.
Tópicos Relacionados
Descubra o poder do módulo matemático integrado do Python. Aprenda sobre funções trigonométricas, logaritmos, métodos de arredondamento e constantes.
Análise Python JSONAprenda como ler, escrever e analisar dados JSON em Python. Domine json.loads, json.dumps e personalize codificadores/decodificadores JSON.
Recursos Python recomendados
Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.
Como analisar uma string para uma data e hora em Python
Aprenda como converter strings em objetos datetime em Python. Domine o método strptime, analise strings de data, lide com fusos horários e evite erros de formatação.
Folha de dicas sobre formatação de data e hora em Python
Aprenda como analisar e formatar datas e horas em Python usando datetime, strftime e strptime.
Python vs JavaScript: qual linguagem de programação é a melhor?
Uma comparação abrangente entre Python e JavaScript. Explore diferenças de sintaxe, desempenho, casos de uso (backend versus frontend) e exemplos de codificação.