Je veux comparer uniquement la partie temporelle dans datetime. J'ai des dates différentes avec un seul champ horaire à comparer. Étant donné que les dates sont différentes et que seule la partie du temps que je veux considérer, je pense donc que la création de deux objets datetime n'aidera pas. ma chaîne comme
start="22:00:00"
End="03:00:00"
Tocompare="23:30:00"
Ci-dessus sont des chaînes lorsque je les convertis avec datetime comme
dt=datetime.strptime(start,"%H:%M:%S")
il donne
1900-01-01 22:00:00
qui est la date par défaut en python. Je dois donc éviter tout cela et ne veux que du temps. J'ai simplement besoin de vérifier si mon Tocompare
se situe entre start
et End
Appelez simplement la .time()
méthode des objets datetime
pour obtenir leurs heures, minutes, secondes et microsecondes.
dt = datetime.strptime(start,"%H:%M:%S").time()
Comparez leurs temps en utilisant datetime.time () .
import datetime
start = datetime.datetime.strptime(start, '%H:%M:%S')
start = datetime.time(start.hour, start.minute,start.second)
tocompare = datetime.datetime.strptime(tocompare, '%H:%M:%S')
tocompare = datetime.time(tocompare.hour, tocompare.minute, tocompare.second)
start > tocompare # False