2010-05-21 104 views
16
>>> from datetime import datetime 
>>> t1 = datetime.now() 
>>> t2 = datetime.now() 
>>> delta = t2 - t1 
>>> delta.seconds 
7 
>>> delta.microseconds 
631000 

有什麼辦法可以把它作爲7.631000?我可以使用時間模塊,但我也需要t1和t2變量作爲DateTime對象。所以如果有一個簡單的方法用datettime做到這一點,那會很好。否則會很難看:以秒爲單位的時間差(作爲浮點數)

t1 = datetime.now() 
_t1 = time.time() 
t2 = datetime.now() 
diff = time.time() - _t1 

回答

16

combined = delta.seconds + delta.microseconds/1E6

+0

or combined = delta.seconds +(float(1)/ delta.microseconds) – pocoa 2010-05-21 16:22:10

+0

@pocoa - 這實際上是一個不正確的轉換。 1 /時間是一個速率(Hz),這在這裏確實沒有意義。這也明顯提供了與您評論的接受答案不同的結果。 – underrun 2016-10-07 15:31:19

6

我不知道是否有更好的辦法,但:

((1000000 * delta.seconds + delta.microseconds)/1000000.0) 

或可能:

"%d.%06d"%(delta.seconds,delta.microseconds) 
23

對於更新版本的Python(2.6沒有它,但是2.7),你也可以使用方法total_seconds

from datetime import datetime 
t1 = datetime.now() 
t2 = datetime.now() 
delta = t2 - t1 
delta.total_seconds() 
相關問題