繁体   English   中英

使用Python 2.7时间模块测量经过的时间

[英]Measuring Elapsed time using Python 2.7 time module

我试图使用时间模块找到两次之间的差异,然后使用strftime将其转换为日期时间格式但是从1970年开始经历的时间我得到一个奇怪的输出,使用python找到经过时间的最佳方法是什么?

start_time = time()
info('My Start Time ' + datetime.fromtimestamp(start_time).strftime('%d-%m-%Y %H:%M:%S'))
sleep(5)
elapsed_time = time() - start_time
info('My Elapsed Time' + datetime.fromtimestamp(elapsed_time).strftime('%d-%m-%Y %H:%M:%S'))

输出是

 [2016-03-17 00:45:16.828277] INFO: Generic: My Start Time 17-03-2016 11:45:16 
 [2016-03-17 00:45:21.832503] INFO: Generic: My Elapsed Time 01-01-1970 10:00:05

时间间隔与时间不同。 它并没有真正意义的时间间隔转换像elapsed_timedatetime

使用datetime模块的datetimetimedelta对象可以大大简化您的脚本。 当您从另一个datetime时间中减去一个datetime时间时,结果为timedelta

from time import sleep
from datetime import datetime

start_time = datetime.now()
print('My Start Time', start_time)
sleep(5)

stop_time = datetime.now()
print('My Stop Time', stop_time)

elapsed_time = stop_time - start_time
print('My Elapsed Time', elapsed_time)    

产量

My Start Time 2016-03-17 12:28:01.262090
My Stop Time 2016-03-17 12:28:06.265964
My Elapsed Time 0:00:05.003874

请参阅timedelta的文档以查看有关这些对象的更多示例。

这是我最喜欢的东西之一! 你的问题是,就时间模块而言......时间从1970年1月1日开始!! 请参阅此处的文档。
时间从这个日期算起,所以当你把经过的时间转换成日期时,你基本上说的是给我01/01/1970 +我的经过时间。

此外,我不确定将经过的时间作为日期是否真的是你想要的。 你不想用小时,分钟等来衡量这个吗? 如果你真的想要日期,你应该只调用new_time = time.time() ,然后将new_time转换为你想要的格式(不用费心计算经过时间作为日期)

您可能希望执行“开始时间”+“已用时间”:)而不是从“经过时间”开始制作最终时间戳。

start_time = time()
info('My Start Time ' + datetime.fromtimestamp(start_time).strftime('%d-%m-%Y %H:%M:%S'))
sleep(5)
elapsed_time = time() - start_time
info('My Elapsed Time' + datetime.fromtimestamp(elapsed_time + start_time).strftime('%d-%m-%Y %H:%M:%S'))

这是因为Python的Time模块的纪元是1970年1月1日。调用time()测量自纪元以来的秒数( .strftime('%d-%m-%Y %H:%M:%S')只重新格式化秒到我们可以理解的日期)

因此,当您找到elapsed_time ,最终会在您第一次启动和分配变量的时间之间产生秒数。 因此,将datetime.fromtimestamp(elapsed_time)输出到1970年1月1日10:00:05是有意义的。 其中elapsed_time为5, start_time为1458177108.6 ...您希望结果为start_time PLUS elapsed_time(或者,简单地说,为什么不只是当前时间?)

我希望这个解释是有道理的。 以下是Python文档https://docs.python.org/2/library/time.html的更多解释

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM