如何使用 python 中的箭头正确计算日期范围

how to calculate date range correctly using arrow in python

我有下面的一小段代码,我正在尝试使用[=计算今天昨天之间的天数13=] 并确保结果准确。

import arrow

TODAY = arrow.now()

YESTERDAY = arrow.now().shift(days=-1)

result = TODAY - YESTERDAY

print("result: ", result)
print("number of days: ", result.days)
print("TODAY: ", TODAY)
print("YESTERDAY: ", YESTERDAY)

这是我得到的结果:

result:  23:59:59.999912
number of days:  0     # this is because the result is not 24 but 23:59 instead... 
TODAY:  2022-05-16T11:54:03.332408+00:00
YEST:  2022-05-15T11:54:03.332496+00:00

关于如何具体使用 arrow 实现上述目标,我是否缺少更好的方法?

尝试 TODAY.shift(days=-1) 而不是 arrow.now().shift(days=-1)。这样,无论语句执行多长时间,您的日期都将恰好相隔 1 天。

我在我的系统上运行它好几次了,它总是出现

result:  1 day, 0:00:00
number of days:  1
TODAY:  2022-05-16T07:15:14.513011-05:00
YESTERDAY:  2022-05-15T07:15:14.513011-05:00

如果你改变它在你的机器上会变得更好吗

YESTERDAY = arrow.now().shift(days=-1)

到这个?

YESTERDAY = TODAY.shift(days=-1)