Hallo Ich schreibe ein Programm, das von der Zeit abhängig ist und etwas merkwürdiges Verhalten mit Datetime-Objekten beobachte, die ich nicht recht herausfinden kann. Der Code arbeite ich mit/Ärger habe, ist ...Datetime-Vergleichsverhalten in Python
now = datetime.now()
time_changed_state = some datettime object previously initialized
time_delay = some integer
time_arrival = time_changed_state + timedelta(minutes=time_delay)
if now < time_arrival:
do something
elif now >= time_arrival:
do something different
Ich habe mit Testfällen, um arbeitet der Code ot stellen Sie sicher, die Art und Weise verhält, würde ich es mögen, aber es scheint nicht, zu.
Ich entdeckte das seltsame Verhalten, wenn die time_delay = 0, und ich weiß in der Tat, dass jetzt> = time_arrival, da time_changed_state war ein Datetime-Objekt vor diesem Funktionsaufruf initialisiert und jetzt innerhalb der Funktion initialisiert wurde. Es wird jedoch der Code "Do Something" ausgeführt und nicht der Code "Do Something Different".
Vielen Dank!
Sind Sie sicher, dass 'time_arrival' in der Vergangenheit liegt? –
Ja, ich bin mir ziemlich sicher, dass es in der Vergangenheit ist. Ich habe sogar versucht, mit dem unten stehenden Code zu testen, wo ich time_changed_state in der Vergangenheit initialisiere, aber immer noch auf true, wenn es eindeutig falsch sein sollte. –