Saltar al contenido

python

Operaciones con fechas: Sumar y restar días en Python

En este tutorial aprenderás cómo realizar operaciones con fechas en Python, como sumar un día a una fecha u obtener el día de ayer.

Operaciones con fechas en Python

Qué dolor de cabeza nos puede acarrear el realizar operaciones con fechas en Python, bueno, y en cualquier lenguaje. Yo las uso frecuentemente, especialmente cuando tengo que hacer consultas de base de datos para determinados listados. Por ejemplo: Obtener las mediciones de los sensores de los últimos dos días, devolver las alertas que ha generado el sistema en la última hora, etc. Menos mal que Python nos pone las cosas fáciles para sumar y restar fechas y tiempo a una fecha dada.

El objeto timedelta, la base para operaciones con fechas

Un objeto timedelta representa una duración de tiempo, es decir, la diferencia entre dos fechas o instantes de tiempo.
Cuando necesitemos realizar operaciones con fechas/tiempo, utilizaremos un objeto timedelta como referencia. Por ejemplo, si queremos representar una duración de tiempo de un día, crearemos un objeto timedelta del siguiente modo:

>>> import datetime
>>> datetime.timedelta(days=1)
datetime.timedelta(1)

Una vez que tenemos esto claro, veremos cómo llevar a cabo operaciones con fechas.

Restar días a una fecha en python

Para restar días a una fecha simplemente pasamos los días al objeto timedelta y se los restamos a la fecha base. Por ejemplo, si queremos representar la fecha de «ayer», haremos lo siguiente:

>>> import datetime
>>> ahora = datetime.datetime.utcnow()
>>> print(ahora)
2019-03-21 11:01:04.192582
>>> ayer = ahora - datetime.timedelta(days=1)
>>> print(ayer)
2019-03-20 11:01:04.192582

Restar horas a una fecha en python

En el siguiente ejemplo veremos cómo obtener la hora anterior a la actual:

>>> hace_una_hora = ahora - datetime.timedelta(hours=1)
>>> print(hace_una_hora)
2019-03-21 10:01:04.192582

Sumar días a una fecha en python

Para sumar días a una fecha solamente tenemos que pasar los días al objeto timedelta y se los sumamos a la fecha base. El ejemplo que sigue obtiene la fecha de mañana:

tomorrow = ahora + datetime.timedelta(days=1)
print(tomorrow)
2019-03-22 11:01:04.192582

Todos los parámetros que se pueden pasar a timedelta

En los ejemplos anteriores hemos visto cómo sumar/restar días y horas a una fecha dada. No obstante, un objeto timedelta se puede inicializar con todos los siguientes valores: weeks, days, hours, minutes, seconds, milliseconds y microseconds.

>>> import datetime
>>> datetime.timedelta(weeks=1)
datetime.timedelta(7)
>>> datetime.timedelta(days=7)
datetime.timedelta(7)

Newsletter EstrategIA

Programar con IA sin perder el control

Si te ha interesado este artículo, esto también te va a interesar. Cada dos martes te cuento qué funciona y qué no al construir software con agentes de IA, con ejemplos reales de mi software factory y los números de mis proyectos, sin maquillar.

9.277 desarrolladores y profesionales ya la leen martes quincenales

EstrategIA Próximo número · martes

Lo que recibes

  1. Qué funciona (y qué no) programando con agentes de IA
  2. Casos reales de MaIA y DGC: decisiones, errores y resultados
  3. Los números de mis proyectos, sin maquillar
  4. Una idea que puedes aplicar esa misma semana

Sin spam. Te das de baja con un clic.

j2logo

Sigue leyendo

Listar directorio en Python
python

Listar directorio en Python. Listar ficheros de un directorio

requests - Hacer peticiones http en Python
python

Python requests. La librería para hacer peticiones http en Python

Web scraping con Python. Guía de inicio a BeautifulSoup
python

Web scraping con Python. Extraer datos de una web. Guía de inicio de Beautiful Soup

Tutorial de SQLAlchemy
python

SQLAlchemy. Tutorial de Python SQLAlchemy. Guía de inicio