2011-08-15 114 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更方便。