1. Obtener la fecha y hora actuales
¿Para qué sirve?
Como se sabe, el tiempo es dinero. Y en programación, también es control, planificación y automatización. Por ejemplo, si quieres ejecutar una tarea a una hora específica o registrar eventos, necesitas saber que el reloj está en marcha, y cómo interactuar con él.
Fundamentos de datetime
Así que, imaginemos que comenzamos a trabajar con la biblioteca datetime
. A diferencia de ensamblar
una nave espacial, ¡esto es pan comido! Vamos a empezar con obtener la fecha y hora actuales:
from datetime import datetime
# Obtener la fecha y hora actuales
now = datetime.now()
print("Fecha y hora actuales:", now)
Este código dice "¡Hey, datetime
, dime qué hora es ahora mismo!" Y lo genial es que
now()
devuelve un objeto datetime
, que contiene toda la información sobre el momento actual. Sí,
como
un profesor que lo sabe todo y de inmediato.
Hora local y universal (UTC)
Ah, UTC — la hora universal que une a todos sin zonas horarias adicionales. Si quieres saber la hora exacta en Marte (bueno, casi), UTC es para ti. Aquí está cómo obtenerlo:
# Obtener la hora actual en formato UTC
now_utc = datetime.utcnow()
print("Fecha y hora actuales en UTC:", now_utc)
Te preguntarás, ¿cuál es la diferencia? La hora local tiene en cuenta tu zona horaria, mientras que UTC es la hora en Greenwich, no depende de tu ubicación geográfica.
Extracción de partes de la fecha y hora
A veces, no necesitamos la fecha completa, sino solo partes de ella. Es como pedir una pizza y solo tomar el queso — no siempre es lógico, pero a veces necesario:
# Extracción de partes individuales de la fecha y hora
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second
print(f"Ahora son las {hour}:{minute}:{second} del {day}.{month}.{year}")
Así, podemos trabajar individualmente con los elementos de la fecha y la hora, por ejemplo, para felicitar a un colega por su cumpleaños (pero solo si él mismo lo recuerda).
Ejemplos de uso de la fecha y hora actuales
Es otra cosa cuando necesitas programar eventos que ocurren en diferentes momentos del tiempo. Por ejemplo, hagamos un script simple que felicite a todos por el viernes (porque, ¿a quién no le gusta el viernes?).
# Ejemplo de uso de la fecha actual para un recordatorio diario
if now.weekday() == 4: # Viernes
print("¡Hurra! Hoy es viernes, ¡hora de descansar!")
else:
print("Espera un poco más, el viernes aún no llega.")
Este código usa el método weekday()
, que devuelve un número del 0 al 6 (donde 0 es lunes y 6 es
domingo), para verificar qué día de semana es hoy y alertar sobre la llegada de los fines de semana.
2. Trabajar con objetos datetime
Necesitamos saber no solo el momento actual, sino también cómo avanzar de un momento a otro para realizar otras operaciones o comparaciones. Por ejemplo, ¿cómo calculas cuánto te has retrasado para una reunión con colegas?
# Ejemplo de cálculo de diferencia en tiempo
from datetime import timedelta
# Crear una fecha en el pasado
past_date = datetime(2023, 1, 1, 10, 0, 0)
# Calcular la diferencia entre la hora actual y la pasada
difference = now - past_date
print(f"Desde ese día memorable han pasado {difference.days} días y {difference.seconds // 3600} horas.")
Aquí creamos una fecha en el pasado y la comparamos con la actual. ¿Cuántos días han pasado desde Año Nuevo? ¡Ahora lo sabes!
3. Trabajar con zonas horarias
Para trabajar con zonas horarias en datetime
usamos la biblioteca pytz
, que permite
convertir una fecha y hora a la zona horaria requerida.
Ejemplo de uso de pytz
from datetime import datetime
import pytz
# Obtener la fecha y hora actuales en UTC
utc_now = datetime.now(pytz.utc)
print("Fecha y hora actuales (UTC):", utc_now)
# Convertir a otra zona horaria (por ejemplo, US/Pacific)
pacific_now = utc_now.astimezone(pytz.timezone("US/Pacific"))
print("Fecha y hora actuales (Pacific Time):", pacific_now)
Resultado:
Fecha y hora actuales (UTC): 2024-11-04 14:53:27.123456+00:00
Fecha y hora actuales (Pacific Time): 2024-11-04 06:53:27.123456-08:00
GO TO FULL VERSION