Dominando el Módulo datetime de Python: Fechas, Horas, Timedelta y Strftime Explicados
La librería datetime de Python ofrece un robusto conjunto de herramientas para manipular fechas, horas e intervalos de tiempo. Trabajando con objetos en lugar de strings crudos o timestamps, los desarrolladores pueden realizar cálculos precisos y formateo con confianza.
Claves Clases de datetime
- date — Maneja año, mes y día.
- time — Maneja hora, minuto, segundo y microsegundo, independiente de una fecha específica.
- datetime — Combina fecha y hora en un solo objeto.
- timedelta — Representa una duración, permitiendo suma o resta de fechas y horas.
- tzinfo — Base abstracta para soporte de zonas horarias.
Primeros Pasos: Importando e Instanciando
Antes de cualquier manipulación, importa las clases necesarias:
from datetime import date, time, datetime, timedelta
Instancia un objeto date:
hoy = date.today() print(hoy) # ej., 2024-04-19
Fecha y Hora Actual
El método datetime.now() devuelve la fecha y hora local actual:
ahora = datetime.now() print(ahora) # 2024-04-19 14:35:12.123456
Para extraer solo el componente de hora:
hora_actual = ahora.time() print(hora_actual) # 14:35:12.123456
Formateando Salida con strftime
El método strftime convierte objetos datetime a strings legibles usando códigos de formato:
ahora.strftime("%Y-%m-%d %H:%M:%S") # "2024-04-19 14:35:12"
Directivas comunes incluyen:
%Y— Año de 4 dígitos.%y— Año de 2 dígitos.%a— Nombre abreviado del día de la semana.%A— Nombre completo del día de la semana.%b— Nombre abreviado del mes.%B— Nombre completo del mes.%d— Día del mes (01-31).%H— Hora (00-23).%I— Hora (01-12).%M— Minuto (00-59).%S— Segundo (00-59).%p— AM o PM.
Ejemplos:
# Formato 12-horas con AM/PM
print(ahora.strftime("%I:%M:%S %p"))
# Formato 24-horas
print(ahora.strftime("%H:%M"))
Trabajando con timedelta
Un timedelta representa un intervalo de tiempo. Soporta aritmética con fechas y datetimes:
# Crear timedelta de 365 días un_año = timedelta(days=365) # Un año desde hoy fecha_futura = datetime.now() + un_año print(fecha_futura)
Calculando días hasta un evento (ej. Año Nuevo):
hoy = date.hoy()
año_nuevo = date(hoy.year, 1, 1)
if año_nuevo < hoy:
año_nuevo = date(hoy.year + 1, 1, 1)
print("Año Nuevo es en", (año_nuevo - hoy).days, "días")
else:
print("Año Nuevo es en", (año_nuevo - hoy).days, "días")
Uniendo Todo
A continuación, un script conciso listo para ejecutar que demuestra las características principales:
from datetime import datetime, date, timedelta
# Fecha y hora actual
ahora = datetime.now()
print("Ahora:", ahora)
# Ejemplos de formato
print("Formato ISO:", ahora.strftime("%Y-%m-%d %H:%M:%S"))
print("Hora 12-horas:", ahora.strftime("%I:%M:%S %p"))
# Operaciones con timedelta
una_semana = timedelta(weeks=1)
print("Una semana desde ahora:", ahora + una_semana)
# Días hasta Año Nuevo
hoy = date.today()
año_nuevo = date(hoy.year + (hoy < date(hoy.year, 1, 1)), 1, 1)
print("Días hasta Año Nuevo:", (año_nuevo - hoy).days)
Resumen
El módulo datetime de Python equipa a los desarrolladores con poderosas herramientas type-safe para manipulación de fecha y hora:
- Usa objetos
date,timeydatetimepara representaciones claras y explícitas. - Aprovecha
strftimepara formateo flexible y locale-aware. - Emplea
timedeltapara aritmética y cálculo de intervalos. - Recuerda importar las clases relevantes antes de usarlas; de lo contrario, el intérprete lanzará errores.
Estas herramientas son esenciales para tareas que van desde simple timestamping hasta lógica de scheduling compleja.
python
- Dominando datetime en Python: Guía Práctica de Fechas, Horas y Zonas Horarias
- Obtener la Fecha y Hora Actual en Python: Guía Práctica
- Python: Obtener Hora Actual y Datos de Zona Horaria Fácilmente
- Dominar el Módulo time de Python: Funciones, Structs y Ejemplos Prácticos
- Dominar time.sleep() en Python: Mejores Prácticas, Multihilo y Ejemplos Reales
- Función print() en Python: Guía Práctica con Ejemplos
- Domine str.count() en Python: Cómo Contar Caracteres y Subcadenas con Ejemplos
- Domine el Formateo de Strings en Python con format(): Ejemplos Claros
- Domine el Método String.find() en Python: Sintaxis, Ejemplos y Alternativas
- Dominando las funciones lambda en Python: ejemplos prácticos y mejores prácticas
- Función round() en Python explicada con ejemplos prácticos