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

2024-05-01 13:48:56 发布

您现在位置:Python中文网/ 问答频道 /正文

在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秒,忽略符号。你知道为什么不是这样吗


Tags: 代码fromimportdatetime顺序versionsys差异
1条回答
网友
1楼 · 发布于 2024-05-01 13:48:56

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

print((datetime_2 - datetime_1).total_seconds())
print((datetime_1 - datetime_2).total_seconds())

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

How do I check the difference, in seconds, between two dates?

相关问题 更多 >