2011-08-15 77 views
9

我相信这是很多人的不良行为,但我发现自己真的与整个datetime.timedelta事物混淆。本质上我是时间戳的东西,当我开始startTime,然后我戳时间戳endTime的结束时间,我试图得到HH:MM:SS的差异,我没有运气。在Python中计算时间(datetime.timedelta?)

我得到这个错误,当我做打印endTime - startTime

TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.time' 

编辑,包括最终的结果:

startTime = datetime.now() 
<... my looping process ...> 
endTime = datetime.now() 
calcdTime = endTime - startTime 
print str(calcdTime)[:-4] 

此输出到:H:MM:SS.MM(从而剥夺了最后4个字符timedelta

+1

'datetime.datetime'和'datetime.date'支持减法,但'datetime.time'不支持。尝试使用'datetime.datetime'而不是 –

回答

10

使用一个datetime而不是一个time。从一个减去另一个是没有意义的没有日期;你不能只假定他们在同一天,左边的操作数是第一个。

+0

男人,我觉得愚蠢。 :)像魅力一样工作,谢谢。 – chow

5

根据您与信息做什么,你可能希望只使用time.time

import time 

starttime = time.time() 

# do stuff 

endtime = time.time() 

elapsed = endtime - starttime 
print elapsed 

,这将给你在几秒钟内经过的时间。这通常比拥有timedelta更方便。