Vejo que comparações de datas podem ser feitas e há também datetime.timedelta()
, mas estou lutando para descobrir como verificar se a hora atual ( datetime.datetime.now()
) é anterior, posterior ou igual a uma hora especificada (por exemplo, 8h), independentemente da data.
python
time
comparison
Steve Jay
fonte
fonte
'23:23:00' > '23:59:00'
ou'23:23:00' > '23:09:22'
, assim como você faria entre doisdatetime.datetime.now().strftime('%H:%M')
valores. É a melhor forma de comparar os tempos? Eu não sei. Funciona? Tanto quanto eu testei, funcionou bem. Mas definitivamente (e claro): não há chance de usar isso com a string datetime que tem mês, dias da semana.Respostas:
Você não pode comparar um momento específico (como "agora") com um evento recorrente não corrigido (8 horas da manhã acontecem todos os dias).
Você pode verificar se agora é antes ou depois das 8h de hoje :
fonte
Você pode usar o
time()
método dedatetime
objetos para obter a hora do dia, que pode ser usada para comparação sem levar em consideração a data:fonte
datetime.datetime.now().time()
, não se esqueça dos colchetesnow()
!Você pode comparar objetos datetime.datetime diretamente
Por exemplo:
fonte
Inspirado por Roger Pate:
fonte
Outra maneira de fazer isso sem adicionar dependências ou usar datetime é simplesmente fazer algumas contas nos atributos do objeto de tempo. Possui horas, minutos, segundos, milissegundos e um fuso horário. Para comparações muito simples, horas e minutos devem ser suficientes.
Não recomendo fazer isso, a menos que você tenha um caso de uso incrivelmente simples. Para qualquer coisa que requeira reconhecimento de fuso horário ou reconhecimento de datas, você deve usar datetime.
fonte
datetime tem capacidade de comparação
fonte
Estou surpreso por não ter visto este forro aqui:
fonte
Você pode usar a função Timedelta para comparação de aumento de x tempo.
Just A combinação dessas respostas esta E Roger
fonte