以浮点形式表示的秒数差异

30 投票
3 回答
54563 浏览
提问于 2025-04-15 22:58
>>> 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里。

撰写回答