使用python查找以秒为单位的时间差

时间:2010-09-03 18:26:01

标签: python

我需要用python找到秒的时差。我知道我可以得到这样的差异:

from datetime import datetime
now = datetime.now()
....
....
....
later = datetime.now()
difference = later-now

如何在总秒数上获得差异?

4 个答案:

答案 0 :(得分:23)

import time
now = time.time()
...
later = time.time()
difference = int(later - now)

答案 1 :(得分:9)

total_seconds方法将返回差异,包括任何小数部分。

from datetime import datetime
now = datetime.now()
...
later = datetime.now()
difference = (later - now).total_seconds()

如果需要,可以通过int()将其转换为整数

答案 2 :(得分:4)

将具有足够乘数的timedelta元组的项加起来应该给你答案。的 diff.days*24*60*60 + difference.seconds

from datetime import datetime
now = datetime.now()
...
later = datetime.now()
diff = later-now
diff_in_seconds = diff.days*24*60*60 + diff.seconds

变量'diff'是一个timedelta对象,它是(天,秒,微秒)的元组,详见https://docs.python.org/2.4/lib/datetime-timedelta.html。所有其他单位(小时,分钟......)将转换为此格式。

>> diff = later- now
>> diff
datetime.timedelta(0, 8526, 689000)
>> diff_in_seconds = diff.days*24*60*60 + diff.seconds
>> diff_in_seconds
>> 8527

另一种看待它的方法是,如果不是以后 - 现在(因此是正时间差),你会有一个负时差(早先 - 现在),其中两者之间经过的时间仍然是相同的在前面的例子中

>> diff = earlier-now
>> diff
datetime.timedelta(-1, 77873, 311000)
>> diff_in_seconds = diff.days*24*60*60 + diff.seconds
>> diff_in_seconds
>> -8527

因此,即使我们确定持续时间少于1天,也需要考虑日期,因为在时间差为负的情况下这是一个重要的术语。

答案 3 :(得分:2)

如果您只需要测量时间跨度,则可以使用time.time()函数,该函数将自Epoch以来的秒数作为浮点数返回。