El módulo datetime de Python facilita el trabajo con fechas y horas. Puedes mostrar fechas en distintos formatos y crear objetos de fecha con solo unas líneas de código.

El módulo datetime de un vistazo

Python datetime es un módulo de Python que deberías conocer, tanto si acabas de leer tu primer tutorial de Python como si llevas mucho tiempo tra­ba­ja­n­do con el lenguaje de pro­gra­ma­ción de Internet. Puedes pensar que los módulos son similares a una bi­blio­te­ca de código en otros lenguajes de pro­gra­ma­ción. Al importar el módulo datetime, amplías Python con funciones para el tra­ta­mie­n­to de la fecha y la hora. Para ello, se utilizan objetos de fecha es­pe­cí­fi­cos dentro del módulo, que puedes crear fá­ci­l­me­n­te en tu código.

Consejo

¿Utilizas Python en tu proyecto web? Con Deploy Now puedes desplegar fá­ci­l­me­n­te los cambios de código en cualquier momento a través de GitHub y seguir en directo el estado actual de tu proyecto.

Python datetime: fecha y hora

Puedes utilizar Python datetime, por ejemplo, para almacenar una fecha y una hora en un objeto distinto. Para ello, necesitas el co­n­s­tru­c­tor datetime de Python, cuya sintaxis es la siguiente:

import datetime as dt
dt.datetime(year, month, day, hour, minute, second, microsecond, timezone)
python

Los pa­rá­me­tros que toma la función re­pre­se­n­tan la fecha y la hora actuales. Los pa­rá­me­tros que es­pe­ci­fi­can el tiempo son op­cio­na­les. En ellos, el valor por defecto es siempre 0 (lo mismo ocurre con el parámetro que es­pe­ci­fi­ca la zona horaria, que también se establece en 0 por defecto). La función datetime devuelve un objeto de fecha y hora.

Python date: fecha

De forma análoga al co­n­s­tru­c­tor datetime, también existe el co­n­s­tru­c­tor Python date con el que se puede crear un objeto fecha; sin embargo, no muestra la hora. Si­n­tá­c­ti­ca­me­n­te, el co­n­s­tru­c­tor date es similar a su homólogo datetime:

import datetime as dt
dt.date(year, month, day)
python

Los pa­rá­me­tros que toma el co­n­s­tru­c­tor de fecha de Python son el año, el mes y el día. El resultado de la llamada a la función es un objeto fecha.

Recuperar la fecha actual: cómo se hace

Si no quieres guardar ningún dato concreto, sino la fecha y hora actuales, tienes a tu di­s­po­si­ción las funciones pre­de­fi­ni­das. De­pe­n­die­n­do de si solo te interesa la fecha actual o la fecha y hora actuales, deberás utilizar una función diferente.

Cómo usar la fecha actual

Si solo te interesa la fecha compuesta por año, mes y día, puedes utilizar una función de la clase Python date llamada “today”. La llamada a la función es sencilla:

import datetime as dt
current_date = dt.date.today()
python

Para llamar a la función today, primero tienes que es­pe­ci­fi­car el módulo datetime, que se pro­po­r­cio­na con el alias dt en el ejemplo anterior. A co­n­ti­nua­ción, utiliza la notación punto para acceder a la fecha de clase, que a su vez es­pe­ci­fi­ca la función today. Después de ejecutar el código anterior, hay un objeto fecha con la fecha actual en la variable llamada date.today.

Pro­ce­di­mie­n­to para la fecha y hora actuales

Si además necesitas la hora actual, te ayudará una función de la clase datetime: now. Con una llamada a now, obtienes un objeto Python datetime que contiene la fecha y la hora actuales, con una precisión de mi­li­se­gu­n­dos.

import datetime as dt
current_date_and_time = dt.datetime.now()
python

La llamada es similar a la llamada de la función today, pero dentro de la clase datetime. Tras la llamada a la función, se almacena un objeto datetime en la variable “current_date_and_time”, que contiene la fecha y hora actuales.

Consejo

Si solo te interesan valores in­di­vi­dua­les de un objeto, como el día, puedes utilizar la notación punto para acceder exac­ta­me­n­te a ese valor. Con “current_date.day”, por ejemplo, accederás al día actual.

Formatear datos en Python

Para las apli­ca­cio­nes en las que quieras dar salida a la fecha, necesitas formatear las fechas u objetos de fecha de forma que cumplan el propósito de tu apli­ca­ción. El módulo datetime de Python también pro­po­r­cio­na una función adecuada para este fin llamada strftime.

La sintaxis de la función es la siguiente:

import datetime as dt
current_date = dt.date.today()
current_date.strftime(format)
python

La función se invoca di­re­c­ta­me­n­te sobre un objeto fecha o fecha-hora y toma un formato es­pe­cí­fi­co como parámetro. Debes es­pe­ci­fi­car este formato como un string de Python, es decir, entre comillas. Python admite varios formatos di­fe­re­n­tes, cuyas abre­via­tu­ras se indican en la tabla siguiente:

Abre­via­tu­ra De­s­cri­p­ción Ejemplo
%a Día de la semana, abreviado Sat
%A Día de la semana, completo Saturday
%w Día de la semana como número 6
%u ISO 8601 Día laborable 6
%j Número del día actual (en relación a todo el año) 365
%b Nombre del mes, abreviado Dec
%B Nombre del mes, completo December
%m Mes como número 12
%U Número de la semana, empezando por el domingo como primer día de la semana 50
%W Número de la semana, empezando por el lunes como primer día de la semana 50
%y Año, abreviado 22
%Y Año, completo 2022
%H Hora (0-23) 22
%I Hora (0-12) 11
%p AM o PM AM
%M Minuto 59
%S Segundo 37
%f Mi­cro­se­gu­n­do 567213
%z De­s­pla­za­mie­n­to UTC +0100
%Z Huso horario CST
Ir al menú principal