Comparación de fechas en Python con datatime

Cuando se tienen dos objetos datetime, la fecha y la hora que representa uno de ellos puede ser anterior o posterior a la del otro, o bien igual.

Para comparar objetos datetime, puedes utilizar operadores de comparación como mayor que, menor que o igual que. Como cualquier otra operación de comparación, se devuelve un valor booleano.

En este tutorial, aprenderemos a comparar la fecha y la hora en objetos datetime.

Comprobar si un DateTime es mayor que otra DateTime

Puedes utilizar el operador mayor que > para comprobar si un objeto datetime es mayor que otro.

Primero entendamos qué queremos decir cuando una fecha y hora es mayor que otra. Por ejemplo, si tomas la fecha y hora actuales y alguna fecha y hora pasadas para compararlas, la fecha y hora actuales son mayores que las pasadas. Del mismo modo, la fecha y la hora futuras son mayores que la fecha y la hora actuales. La misma explicación es válida para dos fechas cualesquiera.

Cronológicamente, la que ocurrió primero es menor.

En el siguiente programa, inicializamos dos objetos datetime, y luego comparamos si el primero es mayor que el segundo.

import datetime 
  
# fecha y hora en formato aaaa/mm/dd hh:mm:ss 
d1 = datetime.datetime(2020, 5, 13, 22, 50, 55) 
d2 = datetime.datetime(2020, 7, 13, 22, 50, 55)
d3 = datetime.datetime(2020, 6, 13, 22, 50, 55)

print(d1 > d2)
print(d2 > d3)

Salida:

False
True

Hemos inicializado tres objetos datetime. Todos los valores para el año, día, hora, minuto y segundo son los mismos, pero cambiamos el valor del mes. d1 tiene el mes igual a 5, d2 tiene el mes igual a 7 y d3 tiene el mes igual a 6.

Comprobar si un DateTime es menor que otro DateTime

Puedes utilizar el operador de comparación menor que < para comprobar si un objeto datetime es menor que otro.

En el siguiente programa, inicializamos dos objetos datetime, y luego comparamos si el primero es menor que el segundo.

import datetime 
  
# fecha y hora en formato aaaa/mm/dd hh:mm:ss 
d1 = datetime.datetime(2020, 5, 13, 22, 50, 55) 
d2 = datetime.datetime(2020, 7, 13, 22, 50, 55)
d3 = datetime.datetime(2020, 6, 13, 22, 50, 55)

print(d1 < d2)
print(d2 < d3)

Salida:

True
False

Comprobar si dos objetos DateTime son iguales

Puedes utilizar el operador de comparación igual que = para comprobar si un objeto datetime tiene el mismo valor que el otro.

En el siguiente programa, inicializamos dos objetos datetime, y luego comprobamos si ambos objetos datetime tienen la misma fecha y hora.

import datetime 
  
# fecha y hora en formato aaaa/mm/dd hh:mm:ss 
d1 = datetime.datetime(2020, 5, 13, 22, 50, 55) 
d2 = datetime.datetime(2020, 5, 13, 22, 50, 55)
d3 = datetime.datetime(2020, 6, 13, 22, 50, 55)

print(d1 == d2)
print(d2 == d3)

Salida:

True
False

Comparar sólo las fechas de los objetos DateTime

En el siguiente programa, inicializamos tres objetos datetime, y comparamos sólo las fechas e ignoramos la parte del tiempo.

import datetime 
  
# fecha y hora en formato aaaa/mm/dd hh:mm:ss 
d1 = datetime.datetime(2020, 5, 13, 22, 50, 55) 
d2 = datetime.datetime(2020, 5, 13, 7, 50, 55)
d3 = datetime.datetime(2020, 6, 13, 22, 50, 55)

print(d1.date() == d2.date()) #True
print(d1.date() == d3.date()) #False
print(d1.date() < d2.date()) #False
print(d1.date() < d3.date()) #True
print(d1.date() > d2.date()) #False
print(d1.date() > d3.date()) #False

Salida:

True
False
False
True
False
False

Comparar sólo las horas de los objetos DateTime

En el siguiente programa, inicializamos tres objetos datetime, y comparamos sólo las horas e ignoramos la parte de la fecha.

import datetime 
  
# fecha y hora en formato aaaa/mm/dd hh:mm:ss 
d1 = datetime.datetime(2020, 5, 13, 22, 50, 55) 
d2 = datetime.datetime(2020, 5, 13, 7, 50, 55)
d3 = datetime.datetime(2020, 6, 13, 22, 50, 55)

print(d1.time() == d2.time()) #True
print(d1.time() == d3.time()) #False
print(d1.time() < d2.time()) #False
print(d1.time() < d3.time()) #True
print(d1.time() > d2.time()) #False
print(d1.time() > d3.time()) #False

Salida:

False
True
False
False
True
False

Resumiendo este tutorial de Python, hemos aprendido a comparar dos objetos DateTime, a comparar fechas de objetos DateTime y a comparar horas de objetos DateTime. Del mismo modo, puedes comparar objetos DateTime a un nivel más granular como, si uno tiene mayor mes, o menor día, o mayor hora temprana y tal, accediendo al valor correspondiente del objeto datetime.

Deja una respuesta