Python日期时间相减 - 结果错误?
我这儿肯定做错了什么,有什么想法吗?
>>> (datetime.datetime(2008,11,7,10,5,14)-datetime.datetime(2008,11,6,9,30,16)).seconds
2098
应该得到的时间比这多。
5 个回答
2
我想知道为什么还没有关于total_seconds的例子。这个方法在python2和python3中都能用。而且这是获取时间差总秒数的最简单方法。
在你的情况下
In [5]: (datetime.datetime(2008,11,7,10,5,14)-datetime.datetime(2008,11,6,9,30,1
...: 6)).seconds
Out[5]: 2098
In [6]: (datetime.datetime(2008,11,7,10,5,14)-datetime.datetime(2008,11,6,9,30,1
...: 6)).total_seconds()
Out[6]: 88498.0
另一个例子:
In [1]: from datetime import datetime
In [2]: d1 = datetime(2018,1,1)
In [3]: d2 = datetime(2018,1,3)
In [4]: td = d2 - d1
In [5]: td.seconds
Out[5]: 0
In [6]: td.days
Out[6]: 2
In [7]: td.total_seconds()
Out[7]: 172800.0
2
其实它返回的是一个时间差对象,这个对象里面有天数的字段,也就是说:
c.seconds = 2098
但是
c.days = 1
11
timedelta.seconds
可以让你获取到时间差中的 秒数
。不过,它还有一个 days
字段(还有一个 milliseconds
字段)。
所以你可能想要一些类似于
delta = datetime.datetime(2008,11,7,10,5,14)-datetime.datetime(2008,11,6,9,30,16)
delta.seconds + delta.days*86400