web-dev-qa-db-fra.com

Comparer uniquement la partie temporelle dans datetime - Python

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

23
Amit K.

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()
36
matt

Comparez leurs temps en utilisant datetime.time () .

8
jarmod
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
2
Yueyoum