Python вычисление Unix разницы во времени в минутах от заданного значения эпохи - PullRequest
1 голос
/ 24 апреля 2020

Я хотел бы знать лучший подход из приведенных ниже решений для расчета разницы во времени в минутах между текущей Linux отметкой времени с заданным значением epoch (например, " 1512082800"извлечено из данных ETL):

python - Разница между двумя unix отметками времени

old = datetime.datetime.fromtimestamp(float(epoch_value)) # eg: 1512082800
cur = datetime.datetime.utcnow()
print((cur - old).total_seconds() / 60) # difference between two Unix timestamps in minutes

Дата разница в минутах Python

fmt = '%Y-%m-%d %H:%M:%S'
cur = datetime.datetime.strptime(time.strftime(fmt), fmt)
epoch = datetime.datetime.fromtimestamp(float(1512082800)).strftime(fmt)
old = datetime.datetime.strptime(epoch, fmt)

old = time.mktime(old.timetuple())
cur = time.mktime(cur.timetuple())

# They are now in seconds, subtract and then divide by 60 to get minutes
print int(cur-old) / 60

1 Ответ

1 голос
/ 24 апреля 2020

, вероятно, лучше использовать time.time() здесь [документы] - так как это дает вам секунды с начала эпохи, вы можете напрямую рассчитать желаемую дельту в минутах как (time.time() - timestamp)/60.

Сравнение времени с получением текущей отметки времени как datetime.datetime.utcnow():

import time
from datetime import datetime

%timeit (time.time() - 1512082800) / 60
221 ns ± 10.4 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

%timeit (datetime.utcnow().timestamp() - 1512082800) / 60
848 ns ± 14.1 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...