bis die Bedingungen des Timedelta-Tupel mit ausreichender Multiplikatoren hinzufügen möchten, sollten Sie Ihre Antwort geben. diff.days*24*60*60 + difference.seconds
from datetime import datetime
now = datetime.now()
...
later = datetime.now()
diff = later-now
diff_in_seconds = diff.days*24*60*60 + diff.seconds
Die Variable 'Diff' ist ein Objekt, das Timedelta ein Tupel von (Tage, Sekunden, Mikrosekunden) ist, wie hier https://docs.python.org/2.4/lib/datetime-timedelta.html im Detail erläutert. Alle anderen Einheiten (Stunden, Minuten ...) werden in dieses Format konvertiert.
>> diff = later- now
>> diff
datetime.timedelta(0, 8526, 689000)
>> diff_in_seconds = diff.days*24*60*60 + diff.seconds
>> diff_in_seconds
>> 8527
Eine andere Möglichkeit, es zu betrachten von später jetzt (also eine positive Zeitdifferenz), wenn stattdessen wäre, Sie stattdessen eine negative Zeitdifferenz haben (früher jetzt), wobei die zwischen den beiden verstrichene Zeit immer noch die gleichen wie in dem früheren Beispiel
>> diff = earlier-now
>> diff
datetime.timedelta(-1, 77873, 311000)
>> diff_in_seconds = diff.days*24*60*60 + diff.seconds
>> diff_in_seconds
>> -8527
Daher, auch wenn wir sicher sind, die Dauer ist weniger als 1 Tag, ist es notwendig, den Tag Begriff zu berücksichtigen, da es ein wichtiger Begriff im Fall ist negative Zeitdifferenz
Dies ergibt eine „Typeerror: int() Argument muss ein String sein, ein Byte-ähnlichen Objekt oder eine Zahl, nicht‚datetime.timedelta‘“ Fehler in Python3. Siehe Robert Longsons Antwort. – typoerrpr