Преобразование TimeDiff в итоговые секунды

У меня есть разница во времени

time1 = datetime.datetime.fromtimestamp(time.mktime(time.gmtime())) ... time2 = datetime.datetime.fromtimestamp(time.mktime(time.gmtime())) diff = time2 - time1 

Теперь, как мне найти общее количество секунд, прошедших? diff.seconds не учитывает дни. Я мог бы сделать:

 diff.seconds + diff.days * 24 * 3600 

Есть ли встроенный метод для этого?

3 Solutions collect form web for “Преобразование TimeDiff в итоговые секунды”

Используйте timedelta.total_seconds() .

У вас есть проблема так или иначе с вашим datetime.datetime.fromtimestamp(time.mktime(time.gmtime())) .

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

(2) Если вы используете эти временные метки для других целей, вам нужно подумать над тем, что вы делаете, потому что результат имеет большой запах:

gmtime() возвращает тайм-код в UTC, но mktime() ожидает время кортежа по местному времени.

Я в Мельбурне, Австралия, где стандартный TZ – UTC + 10, но летнее время остается в силе до завтрашнего утра, так что это UTC + 11. Когда я выполнил следующее, это было 2011-04-02T20: 31 местное время здесь … UTC был 2011-04-02T09: 31

 >>> import time, datetime >>> t1 = time.gmtime() >>> t2 = time.mktime(t1) >>> t3 = datetime.datetime.fromtimestamp(t2) >>> print t0 1301735358.78 >>> print t1 time.struct_time(tm_year=2011, tm_mon=4, tm_mday=2, tm_hour=9, tm_min=31, tm_sec=3, tm_wday=5, tm_yday=92, tm_isdst=0) ### this is UTC >>> print t2 1301700663.0 >>> print t3 2011-04-02 10:31:03 ### this is UTC+1 >>> tt = time.time(); print tt 1301736663.88 >>> print datetime.datetime.now() 2011-04-02 20:31:03.882000 ### UTC+11, my local time >>> print datetime.datetime(1970,1,1) + datetime.timedelta(seconds=tt) 2011-04-02 09:31:03.880000 ### UTC >>> print time.localtime() time.struct_time(tm_year=2011, tm_mon=4, tm_mday=2, tm_hour=20, tm_min=31, tm_sec=3, tm_wday=5, tm_yday=92, tm_isdst=1) ### UTC+11, my local time 

Вы заметите, что t3, результатом вашего выражения является UTC + 1, который, как представляется, UTC + (моя локальная разница в DST) … не очень значимый. Вам следует подумать об использовании datetime.datetime.utcnow() которое не будет прыгать на час, когда DST включается / выключается, и может дать вам больше точности, чем time.time()

Вы можете использовать модуль mx.DateTime

 import mx.DateTime as mt t1 = mt.now() t2 = mt.now() print int((t2-t1).seconds) 
  • Openpyxl, итерация через ячейки, не может сравнивать ячейки с строкой
  • Python: конвертировать тайм-код UTC в метку времени UTC
  • Подмножество Pandas DataFrame на основе ежегодного периода возврата, охватывающего несколько месяцев
  • Каков стандартный способ добавления N секунд в datetime.time в Python?
  • python2.6.6 Преобразование временной отметки времени Apache в секундах с эпохи (стиль unix)
  • Pythonic способ добавления объектов datetime.date и datetime.time
  • преобразование QdateTime в обычный период времени python?
  • Панды: Группируйте по календарю-неделе, затем группируйте стрижки для реального времени
  •  
    Interesting Posts for Van-Lav

    pandas намного медленнее, чем numpy?

    Почему SQLite быстрее, чем Redis, в этом простом бенчмарке?

    Панды: Группируйте по календарю-неделе, затем группируйте стрижки для реального времени

    Помощь с ошибкой pyHook

    Когда встроенные определения метакласса в Python?

    Добавьте элемент между каждым элементом, уже находящимся в списке

    Попытка создать серию уникальных случайных чисел

    Как импортировать пользовательский пакет python по имени

    Как извлечь данные с динамических сайтов, таких как Flipkart, используя селен и Scrapy?

    Преобразование массива байтов Java в массив байтов Python

    Python / Boto 3: Как загрузить / загрузить файлы с AWS S3?

    Библиотека подгонки кривой Python, которая позволяет мне назначать границы параметрам

    unbound method с экземпляром, поскольку первый аргумент получил строку, но требует чего-то еще

    слияние «нескольких» словарей python

    исключение python <type 'exceptions.ImportError'> Нет модуля с именем gdb:

    Python - лучший язык программирования в мире.