Veo que se pueden hacer comparaciones de fechas y también las hay datetime.timedelta()
, pero estoy luchando por averiguar cómo verificar si la hora actual ( datetime.datetime.now()
) es anterior, posterior o igual a una hora específica (por ejemplo, 8 am) independientemente de la fecha.
python
time
comparison
Steve Jay
fuente
fuente
'23:23:00' > '23:59:00'
o'23:23:00' > '23:09:22'
, tal como lo haría entre dosdatetime.datetime.now().strftime('%H:%M')
valores. ¿Es la mejor forma de lograr la comparación entre tiempos? No lo sé. ¿Funciona? Por lo que probé, funcionó bien. Pero definitivamente (y por supuesto): no hay posibilidad de usar esto con una cadena de fecha y hora que tenga meses, días de la semana.Respuestas:
No se puede comparar un momento específico en el tiempo (como "ahora mismo") con un evento recurrente no fijo (a las 8 a. M. Ocurre todos los días).
Puede comprobar si ahora es antes o después de las 8 a. M. De hoy :
fuente
Puede usar el
time()
método dedatetime
objetos para obtener la hora del día, que puede usar para comparar sin tener en cuenta la fecha:fuente
datetime.datetime.now().time()
, no olvide los corchetesnow()
!Puede comparar los objetos datetime.datetime directamente
P.ej:
fuente
Inspirado por Roger Pate:
fuente
Otra forma de hacer esto sin agregar dependencias o usar datetime es simplemente hacer algunos cálculos matemáticos sobre los atributos del objeto time. Tiene horas, minutos, segundos, milisegundos y una zona horaria. Para comparaciones muy simples, las horas y los minutos deberían ser suficientes.
No recomiendo hacer esto a menos que tenga un caso de uso increíblemente simple. Para cualquier cosa que requiera conocimiento de la zona horaria o conocimiento de las fechas, debe usar datetime.
fuente
datetime tiene capacidad de comparación
fuente
Sorprendido no he visto este trazador de líneas aquí:
fuente
Puede utilizar la función Timedelta para comparar aumentos de tiempo x.
Solo una combinación de estas respuestas this And Roger
fuente