以浮点形式表示的秒数差异
>>> from datetime import datetime
>>> t1 = datetime.now()
>>> t2 = datetime.now()
>>> delta = t2 - t1
>>> delta.seconds
7
>>> delta.microseconds
631000
t1 = datetime.now()
_t1 = time.time()
t2 = datetime.now()
diff = time.time() - _t1
有没有什么办法可以把这个变成 7.631000 呢?我可以使用时间模块,但我还需要 t1 和 t2 这两个变量作为日期时间对象。如果有简单的方法可以用 datetime 来做到这一点,那就太好了。否则看起来就会很难看:
3 个回答
7
我不知道有没有更好的方法,但:
((1000000 * delta.seconds + delta.microseconds) / 1000000.0)
或者可能是:
"%d.%06d"%(delta.seconds,delta.microseconds)
50
对于较新版本的Python(Python 2.7及以上或Python 3及以上),你还可以使用一个叫做total_seconds
的方法:
from datetime import datetime
t1 = datetime.now()
t2 = datetime.now()
delta = t2 - t1
print(delta.total_seconds())
24
这行代码的意思是把一个时间差(delta)转换成总的秒数。具体来说,它先取出这个时间差的秒数部分(delta.seconds),然后再把微秒部分(delta.microseconds)转换成秒(因为1秒等于1000000微秒,所以用1E6来表示这个数),最后把这两部分加在一起,得到一个总的秒数,存储在变量combined里。