Compartir en Twitter
Go to Homepage

OBTÉN LA HORA ACTUAL EN PYTHON DE FORMA FÁCIL CON DATETIME

August 11, 2025

Introducción a la manipulación de fechas y horas en Python

En el desarrollo de aplicaciones con Python, la gestión de fechas y horas es una tarea común y fundamental. La biblioteca Datetime de Python es la herramienta principal que facilita esta labor, permitiendo realizar operaciones complejas con fechas y horas de manera sencilla y eficiente.

El objeto central para trabajar con fechas y horas es el objeto de fecha y hora de Datetime , que representa un punto específico en el tiempo. Por ejemplo, para obtener la fecha y hora actual del sistema, se puede utilizar el siguiente código:

import datetime

fecha_actual = datetime.datetime.now()
print(fecha_actual)

Este fragmento importa la biblioteca Datetime y utiliza la función now() para capturar la fecha y hora actuales, mostrando un resultado similar a:

2022-05-18 20:09:24.967527

Además de now() , la biblioteca ofrece funciones como today() , strftime() , date() , time() , y timedelta() , cada una diseñada para diferentes necesidades en la manipulación de fechas y horas.

Por ejemplo, para trabajar con fechas específicas y formatearlas, se puede usar:

import datetime

fecha = datetime.date(2022, 5, 18)
print(fecha.strftime('%d-%m-%Y'))

El resultado será:

18-05-2022

La biblioteca Datetime de Python es esencial para cualquier proyecto que requiera un manejo preciso y flexible de fechas y horas.

Creación y manipulación de objetos datetime

El módulo datetime permite crear objetos que representan fechas y horas específicas. La clase principal es datetime , que se instancia con los parámetros año, mes, día, hora, minuto, segundo y microsegundo:

fecha_hora = datetime.datetime(year, month, day, hour, minute, second, microsecond)

Si algunos valores no son relevantes, pueden establecerse en cero. Para obtener la fecha y hora actual, se utiliza:

ahora = datetime.datetime.now()

Y para extraer solo la hora actual del sistema:

hora_actual = ahora.time()

Una vez creado un objeto datetime , se pueden obtener sus componentes individuales, como el año:

año = fecha_hora.year

Para convertir la fecha y hora a texto con un formato específico, se emplea el método strftime() :

texto_fecha_hora = fecha_hora.strftime('%Y-%m-%d %H:%M:%S')

Este formato corresponde al estándar ISO 8601, ampliamente utilizado para representar fechas y horas.

Para realizar operaciones con fechas, como sumar un día, se usa timedelta() :

un_dia = datetime.timedelta(days=1)
fecha_futura = fecha_actual + un_dia

Este método también permite restar días, horas, minutos o segundos, facilitando la manipulación temporal en los programas.

Obtención de la hora actual en Python con Datetime

Para obtener la hora y fecha actual en Python, el módulo datetime ofrece una solución directa y eficiente. Tras importar el módulo:

import datetime

Se puede llamar a datetime.now() para capturar la fecha y hora del sistema:

ahora = datetime.datetime.now()
print("La hora actual es:", ahora)

La salida típica es:

La hora actual es: 2022-01-01 12:34:56.789012

Este método utiliza la zona horaria local del sistema. Para trabajar con otras zonas horarias, se puede usar la clase datetime.timezone y pasarla como argumento:

import datetime

tz = datetime.timezone(datetime.timedelta(hours=-5))  # Zona horaria GMT-5
ahora = datetime.datetime.now(tz)

print("La hora actual en GMT-5 es:", ahora)

El resultado será:

La hora actual en GMT-5 es: 2022-01-01 07:34:56.789012-05:00

Manejo avanzado de zonas horarias con pytz

Para proyectos que requieren trabajar con múltiples zonas horarias, la librería pytz es una herramienta indispensable. Permite definir zonas horarias específicas y convertir fechas y horas entre ellas.

Por ejemplo, para obtener la hora actual en Ciudad de México, Londres y Nueva York:

import pytz
from datetime import datetime

ciudad_de_mexico = pytz.timezone('America/Mexico_City')
londres = pytz.timezone('Europe/London')
nueva_york = pytz.timezone('America/New_York')

hora_ciudad_de_mexico = datetime.now(tz=ciudad_de_mexico)
hora_londres = datetime.now(tz=londres)
hora_nueva_york = datetime.now(tz=nueva_york)

print("La hora actual en Ciudad de México es:", hora_ciudad_de_mexico.strftime('%H:%M:%S'))
print("La hora actual en Londres es:", hora_londres.strftime('%H:%M:%S'))
print("La hora actual en Nueva York es:", hora_nueva_york.strftime('%H:%M:%S'))

La salida mostrará las horas locales en cada ciudad:

La hora actual en Ciudad de México es: 12:34:56
La hora actual en Londres es: 17:34:56
La hora actual en Nueva York es: 12:34:56

Para convertir una fecha y hora de una zona a otra, se utiliza el método astimezone() :

import pytz
from datetime import datetime

ciudad_de_mexico = pytz.timezone('America/Mexico_City')
londres = pytz.timezone('Europe/London')

hora_londres = datetime.now(tz=londres)
hora_londres = hora_londres.astimezone(ciudad_de_mexico)

print("La hora actual en Londres convertida a Ciudad de México es:", hora_londres.strftime('%H:%M:%S'))

El resultado será:

La hora actual en Londres convertida a Ciudad de México es: 11:34:56

La librería pytz facilita el trabajo con múltiples zonas horarias, permitiendo manejar fechas y horas globalmente sin complicaciones.

Formateo personalizado de fechas y horas

El método strftime() del módulo Datetime permite personalizar la presentación de fechas y horas mediante códigos de formato. Esto es útil para mostrar la información de forma clara y adaptada a las necesidades del usuario.

Por ejemplo, para mostrar la hora actual en formato de 24 horas:

from datetime import datetime
now = datetime.now()
hora_actual = now.strftime("%H:%M:%S")
print("La hora actual es:", hora_actual)

El resultado será:

La hora actual es: 11:30:45

Para incluir la fecha junto con la hora:

from datetime import datetime
now = datetime.now()
fecha_hora_actual = now.strftime("%Y-%m-%d %H:%M:%S")
print("La fecha y hora actuales son:", fecha_hora_actual)

Mostrando:

La fecha y hora actuales son: 2022-06-22 11:30:45

También es posible crear formatos personalizados, como mostrar el nombre completo del mes:

from datetime import datetime
now = datetime.now()
fecha_actual = now.strftime("%d de %B de %Y")
print("La fecha actual es:", fecha_actual)

Con salida:

La fecha actual es: 22 de junio de 2022

El módulo Datetime ofrece una gran flexibilidad para presentar fechas y horas de manera legible y adaptada a cualquier contexto.

Conclusiones

El manejo de fechas y horas en Python es una tarea que puede parecer compleja, pero con la biblioteca Datetime y herramientas complementarias como pytz, se vuelve accesible y eficiente. Desde obtener la hora actual hasta manipular múltiples zonas horarias y personalizar formatos, estas herramientas permiten desarrollar aplicaciones robustas y precisas en cuanto a tiempo.

Dominar estas técnicas es fundamental para cualquier programador que trabaje con datos temporales, ya que garantiza que las aplicaciones funcionen correctamente en diferentes contextos y regiones geográficas. La flexibilidad y potencia de estas bibliotecas hacen que la gestión de fechas y horas sea una tarea sencilla y profesional.