Si solo desea comparar fechas,
yourdatetime.date() < datetime.today().date()
O, obviamente,
yourdatetime.date() == datetime.today().date()
Si quieres comprobar que son de la misma fecha.
La documentación suele ser útil. También suele ser el primer resultado de Google para python thing_i_have_a_question_about
. A menos que su pregunta sea sobre una función / módulo llamado "serpiente".
Básicamente, el datetime
módulo tiene tres tipos para almacenar un punto en el tiempo:
date
por año, mes, día del mes
time
por horas, minutos, segundos, microsegundos, información de zona horaria
datetime
combina fecha y hora. Tiene los métodos date()
y time()
para obtener los objetos date
y correspondientes time
, y hay una combine
función útil para combinar date
y time
en un datetime
.
Si necesita comparar solo el valor del día del mes, puede usar el siguiente código:
if yourdate.day == datetime.today().day: # do something
Si necesita comprobar que la diferencia entre dos fechas es aceptable, puede utilizar timedelta :
if (datetime.today() - yourdate).days == 0: #do something
Y si desea comparar solo la parte de la fecha, simplemente puede usar:
from datetime import datetime, date if yourdatetime.date() < datetime.today().date() # do something
Tenga en cuenta que timedelta tiene el siguiente formato:
Por lo tanto, puede verificar la diferencia en días, segundos, mseg, minutos, etc., dependiendo de lo que realmente necesite:
from datetime import datetime if (datetime.today() - yourdate).days == 0: #do something
En su caso, cuando necesite verificar que dos fechas sean exactamente iguales, puede usar timedelta (0):
from datetime import datetime, timedelta if (datetime.today() - yourdate) == timedelta(0): #do something
fuente
.day
es el día del mes. Entonces, el 12 de agosto es "igual" al 12 de diciembre usando su primer fragmento de código. Probablemente ese no sea el comportamiento que quiere el OP.Puede configurar las horas, minutos, segundos y microsegundos a lo que quiera
datetime.datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
pero la respuesta de la veracidad es probablemente la mejor cuando todos deben ser cero y puedes comparar las
.date()
s de los tiemposSin embargo, tal vez sea más rápido si tiene que comparar cientos de fechas y horas porque solo necesita hacer
replace()
una vez frente a cientos de llamadas paradate()
fuente
all(getattr(someTime,x)==getattr(today(),x) for x in ['year','month','day'])
Hay que comparar el uso
.date()
, pero dejo este método como ejemplo por si se quiere, por ejemplo, comparar las cosas por mes o por minuto, etc.fuente