Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python计算Unix时间戳与给定历元值的差异(以分钟为单位)_Python_Datetime - Fatal编程技术网

Python计算Unix时间戳与给定历元值的差异(以分钟为单位)

Python计算Unix时间戳与给定历元值的差异(以分钟为单位),python,datetime,Python,Datetime,我想从以下解决方案中了解计算当前Linux时间戳与给定历元值(例如从ETL数据中提取的“1512082800”)之间的时间差(以分钟为单位)的最佳方法: 这里最好使用time.time(),因为这会给你从纪元开始的秒数,你可以直接计算所需的增量,以分钟为单位,如(time.time()-timestamp)/60 Timeit比较与将当前时间戳作为datetime.datetime.utcnow()获取的比较: 你不能使用time.time()?像dt_min=(time.time()-ep

我想从以下解决方案中了解计算当前Linux时间戳与给定历元值(例如从ETL数据中提取的“1512082800”)之间的时间差(以分钟为单位)的最佳方法:


这里最好使用
time.time()
,因为这会给你从纪元开始的秒数,你可以直接计算所需的增量,以分钟为单位,如
(time.time()-timestamp)/60

Timeit比较与将当前时间戳作为
datetime.datetime.utcnow()获取的比较:


你不能使用
time.time()
?像
dt_min=(time.time()-epoch_value)/60
?@MrFuppes,是的,这也给出了结果,kudosusing
time.time()
在性能方面似乎也稍微好一点,请参见下面的小timeit比较。
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
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
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)