Cómo analizar una cadena en una fecha y hora en Python (strptime)
Aprenda cómo convertir cadenas en objetos de fecha y hora en Python. Domine el método strptime, analice cadenas de fechas, maneje zonas horarias y evite errores de formato.
Descripción general
Al crear aplicaciones que procesan envíos de formularios de usuario, extraen bases de datos web, analizan registros del servidor o importan hojas CSV, con frecuencia recibirá información de fecha y hora como cadenas de texto sin formato (por ejemplo, `"2026-05-25 15:45"`). Dado que no puede realizar cálculos, aritmética de fechas ni ordenar cadenas, debe analizarlas en objetos de fecha y hora de Python.
El método principal para esta conversión es `datetime.strptime(date_string, format_string)`. El nombre significa "tiempo de análisis de cadenas". La función toma la cadena de fecha sin formato y una plantilla de formato que contiene directivas (como `%Y` para el año, `%m` para el mes y `%d` para el día) y devuelve el objeto de fecha y hora correspondiente.
Si la cadena de entrada no coincide exactamente con la plantilla de formato proporcionada, Python genera un "ValueError". Para evitar fallas, siempre incluya las operaciones `strptime()` en un bloque `try-except`. Para aplicaciones que analizan entradas de fechas diversas y no estructuradas, las bibliotecas externas como `python-dateutil` pueden ayudar a automatizar la detección del analizador.
Código y salida de ejecución
Este script demuestra el análisis de cadenas de fechas usando datetime.strptime, el manejo de entradas no válidas y el cálculo de diferencias de fechas.
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-25Implementación paso a paso
- Importe la clase de fecha y hora del módulo de fecha y hora.
- Identifique la estructura exacta de su cadena de fechas (por ejemplo, día, mes, separadores).
- Llame a datetime.strptime(date_string, format_pattern) con las directivas apropiadas (como %Y, %m, %d).
- Envuelva la declaración de análisis en un bloque ValueError try-except para manejar cadenas con formato incorrecto con elegancia.
Preguntas frecuentes
¿Cuál es la diferencia entre strftime y strptime?
strptime (tiempo de análisis de cadenas) analiza una cadena para crear un objeto de fecha y hora. strftime (hora en formato de cadena) formatea un objeto de fecha y hora en una representación de cadena legible.
¿Cómo analizo cadenas de fecha ISO 8601 (por ejemplo, "2026-05-25T18:30:00Z")?
EnPython 3.7+, puede utilizar la función incorporada datetime.fromisoformat(string), que maneja cadenas ISO de manera eficiente sin requerir una plantilla de formato manual.
Temas relacionados
Aprenda cómo obtener la fecha y hora actuales en Python usando el módulo datetime. Formatee fechas en cadenas con strftime y maneje zonas horarias.
Cómo convertir una cadena a Int en PythonAprenda cómo convertir una cadena a un número entero en Python usando la función int(). Maneje los errores de forma segura y convierta números de binario, octal o hexadecimal.
Recursos recomendados de Python
Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.
Cadenas de Python
Manipulación maestra de cadenas en Python. Aprenda métodos de cadenas, técnicas de corte, concatenación y formato con ejemplos de código claros y ejecutables.
Hoja de trucos sobre métodos de cadenas de Python
Una guía de referencia completa para la manipulación de cadenas de Python. Domine el formateo, la búsqueda, la división, el reemplazo y la verificación de las propiedades de las cadenas.
Decoradores de Python versus patrón de diseño decorador: las diferencias clave
Compare los decoradores de Python y el patrón de diseño de decorador clásico. Comprenda las diferencias entre el ajuste de funciones en tiempo de definición y la composición dinámica de objetos en tiempo de ejecución con código ejecutable.