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

Aft*_*eed 3 python python-2.7

我试图使用时间模块找到两次之间的差异,然后使用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'))
Run Code Online (Sandbox Code Playgroud)

输出是

 [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
Run Code Online (Sandbox Code Playgroud)

PM *_*ing 7

时间间隔与时间不同.将时间间隔转换为a是没有意义elapsed_timedatetime.

使用datetime模块datetimetimedelta对象可以大大简化您的脚本.当你datetime从另一个中减去一个时,结果是a 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)    
Run Code Online (Sandbox Code Playgroud)

产量

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
Run Code Online (Sandbox Code Playgroud)

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