Combinar y manipular fechas y horas
Una vez que tengas una comprensión sólida de las estructuras de datos de fecha y hora en Python, puedes comenzar a combinarlas y manipularlas para realizar diversas operaciones. Esta sección cubrirá las técnicas y métodos comunes para trabajar con fechas y horas en Python.
Combinar fechas y horas
En Python, puedes combinar fechas y horas utilizando la clase datetime
. Aquí tienes un ejemplo:
from datetime import datetime, date, time
## Combine a date and a time
date_obj = date(2023, 4, 15)
time_obj = time(15, 30, 0)
datetime_obj = datetime.combine(date_obj, time_obj)
print(datetime_obj) ## Output: 2023-04-15 15:30:00
También puedes crear un objeto datetime
directamente a partir de una representación de cadena:
datetime_obj = datetime.strptime("2023-04-15 15:30:00", "%Y-%m-%d %H:%M:%S")
print(datetime_obj) ## Output: 2023-04-15 15:30:00
Manipular fechas y horas
El módulo datetime
de Python proporciona varios métodos y operaciones para manipular fechas y horas, como:
- Extraer componentes (año, mes, día, hora, minuto, segundo)
- Realizar operaciones aritméticas (suma, resta, comparación)
- Calcular diferencias de tiempo y duraciones
- Dar formato y analizar cadenas de fecha y hora
Aquí tienes un ejemplo de manipulación de un objeto datetime
:
from datetime import datetime, timedelta
## Create a datetime object
dt = datetime(2023, 4, 15, 15, 30, 0)
## Add 2 days and 3 hours
new_dt = dt + timedelta(days=2, hours=3)
print(new_dt) ## Output: 2023-04-17 18:30:00
## Calculate the time difference
time_diff = new_dt - dt
print(time_diff) ## Output: 2 days, 3:00:00
Conversiones de zona horaria
El módulo datetime
de Python también proporciona soporte para trabajar con zonas horarias. Puedes utilizar la biblioteca pytz
para manejar las conversiones de zona horaria:
import pytz
from datetime import datetime
## Create a datetime object in UTC
utc_dt = datetime(2023, 4, 15, 15, 30, 0, tzinfo=pytz.utc)
## Convert to a different time zone
eastern_tz = pytz.timezone('US/Eastern')
eastern_dt = utc_dt.astimezone(eastern_tz)
print(eastern_dt) ## Output: 2023-04-15 11:30:00-04:00
Al entender estas técnicas para combinar y manipular fechas y horas, puedes construir aplicaciones poderosas que manejen requisitos complejos relacionados con fechas y horas.