Python Datetime: trabajar con fechas y horas
Aprenda a manejar fechas, horas, zonas horarias y cálculos en Python. Domine el formato, el análisis y la aritmética utilizando datetime y timedelta.
Descripción general
Manejar fechas y horas es un desafío notorio en el desarrollo de software, debido a los años bisiestos, los ajustes del horario de verano y los diferentes formatos de zona horaria. Python resuelve estos desafíos con su módulo incorporado `datetime`. Este módulo proporciona un conjunto sólido de clases de objetos, como "fecha", "hora", "fecha y hora" y "zona horaria", que representan y manipulan datos temporales de forma limpia, lo que simplifica los cálculos de fechas.
Una de las tareas más comunes es convertir fechas en cadenas (formato) y cadenas en fechas (análisis). Python usa dos métodos principales para esto: `.strftime()` (formato de cadena de tiempo) convierte un objeto de fecha y hora en una cadena legible usando códigos de formato (como `%Y` para año, `%m` para mes y `%d` para día). Por el contrario, `datetime.strptime()` (tiempo de análisis de cadenas) analiza una entrada de cadena sin formato en un objeto de fecha y hora basándose en una plantilla de formato coincidente, lo cual es vital al leer registros o entradas de API.
La realización de cálculos de fechas también es totalmente compatible con el objeto `timedelta`. Un "timedelta" representa una duración de tiempo (por ejemplo, 7 días, 4 horas). Puede sumar o restar un `timedelta` de un `datetime` para calcular fechas pasadas o futuras (como determinar una fecha de vencimiento). Cuando se trabaja con varias zonas horarias, el uso de objetos que reconozcan la zona horaria (como `zoneinfo` o `timezone.utc`) es fundamental para garantizar que las comparaciones de fechas sigan siendo precisas en diferentes ubicaciones de servidores.
Código y salida de ejecución
Analizar cadenas en objetos de fecha y hora y calcular fechas límite futuras utilizando 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-04Implementación paso a paso
- Calcular el vencimiento de la prueba y las fechas de facturación
- Análisis de cadenas de marca de tiempo dentro de los registros de acceso al servidor
- Programar trabajos cron automatizados o informes recurrentes
Preguntas frecuentes
¿Qué es un objeto de fecha y hora ingenuo o consciente?
Un objeto de fecha y hora ingenuo no contiene información de zona horaria, mientras que un objeto de fecha y hora consciente incluye desplazamientos de zona horaria, lo que lo hace seguro para los cálculos de hora internacional.
¿Cómo calculo la diferencia entre dos fechas?
Restar un objeto de fecha y hora de otro devuelve un objeto delta de tiempo que representa la duración exacta entre ellos.
Temas relacionados
Descubra el poder del módulo matemático integrado de Python. Aprenda sobre funciones trigonométricas, logaritmos, métodos de redondeo y constantes.
Análisis de Python JSONAprenda a leer, escribir y analizar datos JSON en Python. Domine json.loads, json.dumps y personalice codificadores/decodificadores JSON.
Recursos recomendados de Python
Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.
Cómo analizar una cadena en una fecha y hora en Python
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.
Hoja de referencia de formato de fecha y hora de Python
Aprenda a analizar y formatear fechas y horas en Python usando datetime, strftime y strptime.
Python vs JavaScript: ¿Qué lenguaje de programación es mejor?
Una comparación completa entre Python y JavaScript. Explore las diferencias de sintaxis, el rendimiento, los casos de uso (backend frente a frontend) y ejemplos de codificación.