如何检查两个date之间的差异,以秒为单位?

必须有一个更简单的方法来做到这一点。 我想要每隔一段时间刷新一次对象,所以我想logging它们的创build时间,检查当前的时间戳,并根据需要进行刷新。

datetime.datetime已被certificate是困难的,我不想潜入ctime库。 这种事情有什么更容易的吗?

如果要计算两个已知date之间的差异,请使用total_seconds如下所示:

 import datetime as dt a = dt.datetime(2013,12,30,23,59,59) b = dt.datetime(2013,12,31,23,59,59) (ba).total_seconds() 

86400.0

 #note that seconds doesn't give you what you want: (ba).seconds 

0

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

会为你工作吗?

 >>> 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指出,并不总是一定要刷新如此频繁,date时间将靠近在一起。 通过考虑三angular洲的日子,你可以处理更长的时间戳差异:

 >>> 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 

我们有函数total_seconds()与Python 2.7请参阅下面的代码python 2.6

 import datetime import time def diffdates(d1, d2): #Date format: %Y-%m-%d %H:%M:%S return (time.mktime(time.strptime(d2,"%Y-%m-%d %H:%M:%S")) - time.mktime(time.strptime(d1, "%Y-%m-%d %H:%M:%S"))) d1 = datetime.now() d2 = datetime.now() + timedelta(days=1) diff = diffdates(d1, d2)