我试图使用时间模块找到两次之间的差异然后使用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
答案 0 :(得分:7)
时间间隔与时间不同。将var feed = new Instafeed({
accessToken: 'TOKEN_HERE'
}
之类的时间间隔转换为elapsed_time
并不合理。
使用datetime
模块的datetime
和datetime
对象可以大大简化您的脚本。当您从另一个timedelta
中减去一个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
的文档,了解有关这些对象的更多示例。
答案 1 :(得分:0)
这是我最喜欢的事情之一!你的问题是,就时间模块而言......时间从1970年1月1日开始!!请参阅文档here 时间从这个日期开始计算,所以当你把经过的时间转换成日期时,你基本上说的是给我01/01/1970 +我经过的时间。
除此之外,我不确定将经过的时间作为日期实际上是你想要的。你不想用小时,分钟等来衡量这个吗?如果您确实想要日期,则应该只需拨打new_time = time.time()
,然后将new_time
转换为您想要的格式(无需计算经过时间作为日期)
答案 2 :(得分:-1)
您可能希望执行“开始时间”+“已用时间”,而不是从“已用时间”开始制作最终时间戳:)
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
的更多解释