2010-05-21 53 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() 
相关问题