Python中的日期时间减法是非对称的吗?

Python中的日期时间减法是非对称的吗?,python,datetime,Python,Datetime,在python中减去日期时,我发现结果是不对称的,差异的大小取决于减法的顺序 代码 import sys from datetime import datetime, timezone, timedelta print(sys.version) datetime_1 = datetime.fromisoformat('2020-01-19 21:00:00').astimezone(timezone.utc) datetime_2 = datetime_1 + timedelta(hours=

在python中减去日期时,我发现结果是不对称的,差异的大小取决于减法的顺序

代码

import sys
from datetime import datetime, timezone, timedelta
print(sys.version)

datetime_1 = datetime.fromisoformat('2020-01-19 21:00:00').astimezone(timezone.utc)
datetime_2 = datetime_1 + timedelta(hours=1)
print(datetime_1)
print(datetime_2)

print(datetime_1 - datetime_2)
print(datetime_2 - datetime_1)

print((datetime_2 - datetime_1).seconds)
print((datetime_1 - datetime_2).seconds)
输出

> 3.7.2 (default, Dec 29 2018, 06:19:36)  [GCC 7.3.0]
> 2020-01-20 05:00:00+00:00 
> 2020-01-20 06:00:00+00:00
> -1 day, 23:00:00
> 1:00:00
> 3600
> 82800

我的期望是,无论减法的顺序如何,差值都是3600秒,忽略符号。你知道为什么不是这样吗?

最后从我认识的其他人那里得到了答案。诀窍是使用total_seconds()

同一个人给了我一个链接,指向我错过的同一个问题(使这个问题重复)


只看你错过的几秒钟,就可以改变几天
print((datetime_2 - datetime_1).total_seconds())
print((datetime_1 - datetime_2).total_seconds())