如何计算两个日期之间的秒数差?

301 投票
7 回答
325984 浏览
提问于 2025-04-16 08:05

这件事应该有更简单的方法。我有一些对象需要定期更新,所以我想记录它们创建的时间,跟现在的时间对比一下,然后决定是否需要更新。

使用datetime.datetime这个东西让我觉得很复杂,我也不想去研究ctime库。有没有更简单的方法可以做到这一点呢?

7 个回答

21
>>> from datetime import datetime

>>>  a = datetime.now()

# wait a bit 
>>> b = datetime.now()

>>> d = b - a # yields a timedelta object
>>> d.seconds
7

(7是你稍微等待的时间量)

我觉得datetime.datetime这个工具非常有用,所以如果你遇到什么复杂或者尴尬的情况,请告诉我们。

编辑:感谢@WoLpH指出,并不是每次都需要那么频繁地刷新,以至于时间戳会很接近。通过考虑时间差中的天数,你可以处理更长时间的时间戳差异:

>>> a = datetime(2010, 12, 5)
>>> b = datetime(2010, 12, 7)
>>> d = b - a
>>> d.seconds
0
>>> d.days
2
>>> d.seconds + d.days * 86400
172800
49
import time  
current = time.time()

...job...
end = time.time()
diff = end - current

这样对你有用吗?

765

如果你想计算两个已知日期之间的时间差,可以使用 total_seconds,用法如下:

import datetime as dt

a = dt.datetime(2013,12,30,23,59,59)
b = dt.datetime(2013,12,31,23,59,59)

(b-a).total_seconds()

86400.0

#note that seconds doesn't give you what you want:
(b-a).seconds

0

撰写回答