Как посчитать разницу во времени python

Рассчитать разницу во времени с помощью python

Мне интересно, есть ли способ или встроенная библиотека, чтобы найти разницу во времени от двух строковых входных данных.

Я имею в виду, если у меня есть 2 входных строк:

  1. ‘2013-10-05T01:21:07Z’
  2. ‘2013-10-05T01: 21: 16Z’

Как я могу рассчитать разницу во времени и распечатать ее в качестве вывода.

Я знаю, что это звучит немного глупо, но любая помощь в этом приветствуется.

3 ответов

разбор строк с помощью strptime() :

это будет анализировать заданные строки времени как локальное время (установка летнего времени (DST) на автоматический), а результаты-временные структуры. Они по-прежнему отражают, был ли DST явно выключен (0), включен (1) или неявно автоматический (-1). Преобразуйте их в float (секунды с 1970-01-01):

затем вычислите разницу (в секундах):

и преобразовать их в дни / часы / минуты / секунды:

последний блок работает только правильно для положительных различий, поэтому будьте осторожны, чтобы не поменять a и b 😉

но @J. F. Себастьян правильно указал, что это может быть не то, что вы намеревались. Судя по нотации, ваши строки описывают время UTC, а не местное время. Для простых временных различий это актуально, если ваше время охватывает переключатель DST. В этом случае это, конечно, приведет к времени разница в один час слишком велика или один час слишком мал (потому что UTC всегда без DST).

чтобы избежать этого, вы можете установить флаг DST из автоматического (-1) в фиксированное значение (e. г. 0 для off) и используйте следующие значения:

или, как указал @J. F. Sebastian, вы можете забыть о time модуль и вместо того, чтобы использовать datetime.datetime который не знает о DST аспекте:

тогда результаты datetime объекты, которые можно вычесть напрямую получить timedelta объект, который представляет такую разницу во времени, как вы хотите. Печать это приведет к sth как 0:00:05 что может быть именно то, что вы ищете.

вы, похоже, используете формат ISO 8601 dateTime. Этот формат используется во многих местах,включая формат обмена GPS.

Python-сообщество

есть дата…2008.10.02 00:10:23.00741 и есть вторая…2008.09.29 00:45:23.00321..надо отбросить число месяца и временную часть и посчитать разницу месяцев…здесь разница дат будет 1 месяц..даты получены из ДБ оракл через for … а.fetchall():

#2 Дек. 10, 2008 12:46:50

как получить разницу во времени в месяцах..

самый простой вариант, без использовать datetime, timedelta.

#3 Дек. 10, 2008 12:57:03

как получить разницу во времени в месяцах..

Dimka665
Можно маленько допинать 🙂
s = lambda d1,d2: int(d1.split(‘.’)) — int(d2.split(‘.’))+(int(d1.split(‘.’))-int(d2.split(‘.’)))*12
s(d1,d2)

Как найти разницу во времени, используя Python?

В Python очень легко выполнять математику даты и времени, используя объекты дельта времени. Всякий раз, когда вы хотите добавить или вычесть дату / время, используйте DateTime.datetime(), а затем добавьте или вычтите экземпляры date time.time delta().

Дельта-объект времени представляет собой продолжительность, разницу между двумя датами или временем. Дельта-конструктор времени имеет следующую сигнатуру функции

DateTime.timedelta ([дни [, секунды [, микросекунды [, миллисекунды [, минуты [, часы [, недели]]]]]]]) ¶

Примечание. Все аргументы являются необязательными и по умолчанию равны 0. Аргументы могут быть целыми, длинными или плавающими и могут быть положительными или отрицательными. Вы можете прочитать больше об этом здесь https://docs.python.org/2/library/datetime.html#timedelta-objects

Пример

Пример использования объектов и дат времени

Вывод

арифметика time delta() не поддерживается для объектов date time.time(); если вам нужно использовать смещения из существующего объекта date time.time(), просто используйте date time.datetime.combine(), чтобы сформировать экземпляр date time.date time(), выполнить вычисления и снова «извлечь» время с помощью метода .time().

Вычитание 2 объектов даты и времени дает объект дельты времени. Этот дельта-объект времени можно использовать для нахождения точной разницы между двумя датами.

Python. Подсчёт времени выполнения кода

Хочу посчитать время выполнения кода. Для этого подгрузил модуль time и черед одноименную функцию создаю отсечки начала выполнения и завершения. Соответственно разница даёт время выполнения. Это корректно работает внутри python модуля и поэтому идёт отслеживание только времени выполнения конкретного модуля.

Для того, чтобы данная схема работала для начала и конца “цепочки” модулей была придумана вот такая схема.

Вроде бы работает, но хочется убедиться в правильности.

Ноды StartTime и EndTime выглядят одинаково, вот так:

Нод Time, просто делает вычисление.

Когда я решил перенести StartTime и EndTime внутрь одно модуля с вычислениями, то они перестали работать.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *