Суммируя условий timedelta кортежа с адекватными умножителей должны дать вам ответ. 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
Переменная «Diff» представляет собой timedelta объект, который является кортеж (дни, секунды, микросекунды), как описано здесь подробно https://docs.python.org/2.4/lib/datetime-timedelta.html. Все остальные единицы (часы, минуты) преобразуются в этот формат.
>> diff = later- now
>> diff
datetime.timedelta(0, 8526, 689000)
>> diff_in_seconds = diff.days*24*60*60 + diff.seconds
>> diff_in_seconds
>> 8527
Другой способ смотреть на это было бы, если бы вместо позже, теперь (поэтому положительная разница во времени), то вместо того, чтобы иметь разницу отрицательное времени (раньше-сейчас), где время, прошедшее между этими двумя все то же, как и в предыдущем примере
>> diff = earlier-now
>> diff
datetime.timedelta(-1, 77873, 311000)
>> diff_in_seconds = diff.days*24*60*60 + diff.seconds
>> diff_in_seconds
>> -8527
Таким образом, даже если мы уверены, что продолжительность составляет менее 1 день, то необходимо взять дневный срок во внимание, так как она является важным условием в случае отрицательная разница во времени.
Это аргумент «TypeError: int() должен быть строкой, байтовым объектом или числом, а не« datetime.timedelta »ошибкой в Python3. См. Ответ Роберта Лонгсона. – typoerrpr