dateutil包:两个日期之间的绝对秒数差值

4 投票
2 回答
13822 浏览
提问于 2025-04-20 00:51

我在用Python和一个叫做'dateutil'的库。我有两个日期'date1'和'date2',它们是从一些字符串中解析出来的:

import dateutil.parser
date1 = dateutil.parser.parse(string1,fuzzy=True)
date2 = dateutil.parser.parse(string2,fuzzy=True)

我想知道怎么才能得到'date1'和'date2'之间的绝对时间差,也就是不带负号的时间差,单位是秒。只要一个数字就行。

2 个回答

4

使用 total_seconds() 方法来获取时间差的总秒数:

import dateutil.parser
from datetime import datetime

date1 = datetime.now()
date2 = dateutil.parser.parse('2013-11-12 09:00:00',fuzzy=True)

>>> print abs((date1 - date2).total_seconds())
25711599.6705
12

dateutil.parser.parse 这个工具可以把日期和时间转换成 datetime.datetime 这种对象。你可以把两个这样的对象相减,这样就能得到一个 datetime.timedelta 对象,这个对象表示两个时间之间的差距。

接着,你可以使用 total_seconds 这个方法来获取这个时间差的秒数。

diff = date2 - date1
print(diff.total_seconds())

需要注意的是,如果 date1date2 更靠近未来,那么 total_seconds 方法会返回一个负数。

撰写回答