我需要用python找到秒的时差。我知道我可以得到这样的差异:
from datetime import datetime
now = datetime.now()
....
....
....
later = datetime.now()
difference = later-now
如何在总秒数上获得差异?
答案 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以来的秒数作为浮点数返回。