Подтвердить что ты не робот

Найти разницу во времени в секундах как целое число с питоном

Мне нужно найти разницу во времени в секундах с помощью python. Я знаю, что могу понять, как это:

from datetime import datetime
now = datetime.now()
....
....
....
later = datetime.now()
difference = later-now

как мне получить разницу в итоговых секундах?

4b9b3361

Ответ 1

import time
now = time.time()
...
later = time.time()
difference = int(later - now)

Ответ 2

Метод total_seconds возвращает разницу, включая любую дробную часть.

from datetime import datetime
now = datetime.now()
...
later = datetime.now()
difference = (later - now).total_seconds()

Вы можете преобразовать это в целое число через int(), если хотите

Ответ 3

Если вам нужно измерить временной интервал, вы можете использовать функцию time.time(), которая возвращает секунды с момента появления Epoch в качестве числа с плавающей запятой.

Ответ 4

Добавление терминов 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 дня, необходимо учитывать дневной термин, так как это важный термин в случае отрицательной разницы во времени.