my_event.start_time < current_time < my_event.end_time
5 Réponses :
Votre réponse est la voie à suivre aussi longtemps que Démarrer_Time et End_Time n'ont pas de classe TzInfo associée. Vous ne pouvez pas comparer directement une date d'heure naïve avec une date de l'heure TimeZoned. P>
Vous pouvez utiliser un simple si la comparaison de trois dates, comme celle-ci
Je connais vieux, mais comme cela est si élevé sur les résultats de Google, les réponses ici ne prennent pas en compte deux cas:
J'ai écrit une fonction pour prendre soin de la comparaison de temps, j'espère que cela aide toute personne à voir cette ancienne question. p>
Les DateTimes obtiennent des tests de test à tous naïfs (pas de fuseau horaire) ou au courant (TimeZone). Une exception devrait se produire si vous essayez de comparer le conscient et naïf. Si tous les DateTimes sont informés, les trimestres ne doivent pas correspondre à ce qui semble être pris en compte lors de la comparaison.
E.g. p>
Ceci est mon script de vérifier le temps entre deux parcs horaires différents. Un pour le matin et un pour la soirée. Ceci est le script étendu à l'aide du script @ Clifford
def Strategy_Entry_Time_Check():
current_time = datetime.datetime.now()
#current_time = current_time.replace(hour=13, minute=29, second=00, microsecond=00) #For testing, edit the time
morning_start = current_time.replace(hour=9, minute=30, second=00, microsecond=00)
morning_end = current_time.replace(hour=11, minute=00, second=00, microsecond=00)
evening_start = current_time.replace(hour=13, minute=00, second=00, microsecond=00)
evening_end = current_time.replace(hour=15, minute=00, second=00, microsecond=00)
if morning_start <= current_time <= morning_end:
print("Morning Entry")
return True
elif evening_start <= current_time <= evening_end:
print("Evening Entry")
return True
print("No Entry")
return False