Como analisar uma string para uma data e hora em Python (strptime)
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.
Visão geral
Ao criar aplicativos que processam envios de formulários de usuários, coletam bancos de dados da web, analisam logs de servidores ou importam planilhas CSV, você frequentemente receberá informações de data e hora como strings de texto bruto (por exemplo, `"2026-05-25 15:45"`). Como você não pode realizar cálculos, aritmética de datas ou classificação de strings, você deve analisá-los em objetos de data e hora do Python.
O método principal para esta conversão é `datetime.strptime(date_string, format_string)`. O nome significa "tempo de análise de string". A função pega a string de data bruta e um modelo de formato contendo diretivas (como `%Y` para ano, `%m` para mês e `%d` para dia) e retorna um objeto de data e hora correspondente.
Se a string de entrada não corresponder exatamente ao modelo de formato fornecido, o Python gerará um `ValueError`. Para evitar travamentos, sempre envolva as operações `strptime()` em um bloco `try-except`. Para aplicativos que analisam entradas de datas diversas e não estruturadas, bibliotecas externas como `python-dateutil` podem ajudar a automatizar a detecção do analisador.
Saída de código e execução
Este script demonstra a análise de sequências de datas usando datetime.strptime, o tratamento de entradas inválidas e o cálculo de diferenças de datas.
from datetime import datetime
# 1. Basic parsing using strptime
date_str = "2026-05-25 18:30:00"
format_template = "%Y-%m-%d %H:%M:%S"
parsed_date = datetime.strptime(date_str, format_template)
print("Parsed DateTime:", parsed_date)
print("Month parsed:", parsed_date.month)
print("Hour parsed:", parsed_date.hour)
# 2. Handling parse errors safely
bad_date_str = "25/05/2026"
try:
datetime.strptime(bad_date_str, "%Y-%m-%d")
except ValueError as e:
print(f"\nParse Error: {e}")
# Correcting the format
corrected_date = datetime.strptime(bad_date_str, "%d/%m/%Y")
print("Corrected Parse:", corrected_date.date())Parsed DateTime: 2026-05-25 18:30:00
Month parsed: 5
Hour parsed: 18
Parse Error: time data '25/05/2026' does not match format '%Y-%m-%d'
Corrected Parse: 2026-05-25Implementação passo a passo
- Importe a classe datetime do módulo datetime.
- Identifique a estrutura exata da sua sequência de datas (por exemplo, dia, mês, separadores).
- Chame datetime.strptime(date_string, format_pattern) com diretivas apropriadas (como %Y, %m, %d).
- Envolva a instrução de análise em um bloco try-except ValueError para lidar com strings malformadas normalmente.
Perguntas frequentes
Qual é a diferença entre strftime e strptime?
strptime (tempo de análise de string) analisa uma string para criar um objeto datetime. strftime (formato de string time) formata um objeto datetime em uma representação de string legível.
Como analiso strings de data ISO 8601 (por exemplo, "2026-05-25T18:30:00Z")?
EmPython 3.7+, você pode usar a função integrada datetime.fromisoformat(string), que lida com strings ISO de forma eficiente sem exigir um modelo de formato manual.
Tópicos Relacionados
Aprenda como obter a data e hora atuais em Python usando o módulo datetime. Formate datas em strings com strftime e administre fusos horários.
Como converter string em int em PythonAprenda como converter uma string em um inteiro em Python usando a função int(). Lide com erros com segurança e converta números de binário, octal ou hexadecimal.
Recursos Python recomendados
Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.
Strings Python
Manipulação de strings mestre em Python. Aprenda métodos de string, técnicas de fatiamento, concatenação e formatação com exemplos de códigos claros e executáveis.
Folha de dicas dos métodos de string Python
Um guia de referência completo para manipulação de strings em Python. Domine a formatação, pesquisa, divisão, substituição e verificação de propriedades de string.
Decoradores Python versus padrão de design de decorador: as principais diferenças
Compare os decoradores Python e o padrão de design clássico do decorador. Entenda as diferenças entre o agrupamento de funções em tempo de definição e a composição dinâmica de objetos em tempo de execução com código executável.