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 datetimemó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
datetimecombina fecha y hora. Tiene los métodos date()y time()para obtener los objetos datey correspondientes time, y hay una combinefunción útil para combinar datey timeen 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 somethingSi necesita comprobar que la diferencia entre dos fechas es aceptable, puede utilizar timedelta :
if (datetime.today() - yourdate).days == 0: #do somethingY si desea comparar solo la parte de la fecha, simplemente puede usar:
from datetime import datetime, date if yourdatetime.date() < datetime.today().date() # do somethingTenga 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 somethingEn 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 somethingfuente
.dayes 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