Python ofrece potentes herramientas para trabajar con fechas y horas. A menudo, necesitarás convertir cadenas de fecha y hora en objetos datetime
para facilitar su manipulación y análisis. Este artículo explora diferentes métodos para lograr esta conversión, centrándose en la flexibilidad y el manejo de errores.
Tabla de contenido
- Usando
datetime.strptime()
- Métodos alternativos de conversión
- Manejo robusto de errores
- Manejo de diversos formatos de fecha y hora
Usando datetime.strptime()
La función datetime.strptime()
es una opción común para la conversión de cadena a datetime
. Toma dos argumentos:
date_string
: La cadena que contiene la información de fecha y/o hora.format
: Una cadena de formato que especifica cómo se representan la fecha y la hora endate_string
.
La cadena de formato usa directivas para representar diferentes partes de la fecha y la hora. Aquí hay algunas directivas clave:
Directiva | Significado | Ejemplo |
---|---|---|
%Y |
Año con siglo | 2024 |
%y |
Año sin siglo | 24 |
%m |
Mes (01-12) | 03 |
%d |
Día del mes (01-31) | 15 |
%H |
Hora (reloj de 24 horas, 00-23) | 14 |
%I |
Hora (reloj de 12 horas, 01-12) | 02 |
%p |
AM/PM | PM |
%M |
Minuto (00-59) | 30 |
%S |
Segundo (00-59) | 00 |
%f |
Microsegundo (000000-999999) | 123456 |
%A |
Nombre del día de la semana (completo) | Lunes |
%a |
Nombre del día de la semana (abreviado) | Lun |
%B |
Nombre del mes (completo) | Marzo |
%b |
Nombre del mes (abreviado) | Mar |
El orden de las directivas en la cadena de formato debe coincidir con el orden en la cadena de fecha.
from datetime import datetime
date_string = "2024-03-15 14:30:00"
format = "%Y-%m-%d %H:%M:%S"
datetime_object = datetime.strptime(date_string, format)
print(datetime_object) # Salida: 2024-03-15 14:30:00
Métodos alternativos de conversión
Para formatos de fecha más complejos o menos estándar, considera usar bibliotecas como dateutil
:
from dateutil import parser
date_string = "March 15th, 2024 2:30 PM"
datetime_object = parser.parse(date_string)
print(datetime_object)
Manejo robusto de errores
Siempre envuelve strptime
en un bloque try-except
para manejar posibles excepciones ValueError
:
try:
datetime_object = datetime.strptime(date_string, format)
except ValueError as e:
print(f"Error convirtiendo la cadena de fecha: {e}")
Manejo de diversos formatos de fecha y hora
Para formatos de entrada variados, es posible que necesites preprocesar la cadena o usar expresiones regulares para extraer los componentes de la fecha antes de aplicar strptime
o dateutil.parser
.