Python 日期时间和时区差异不匹配

问题描述 投票:0回答:1
from datetime import datetime, timezone
import pytz
today = datetime.now().replace(tzinfo=pytz.timezone('Asia/Kolkata'))
today_again = datetime.now().replace(tzinfo=pytz.timezone('Asia/Kolkata'))
print(today - today_again, today.tzinfo)

为什么今天和today_again日期时间对象之间的差异是1天而不是零?

在没有时区信息的情况下尝试过,发现工作正常

python datetime timezone
1个回答
0
投票

您误解了输出。函数调用需要时间,您看到的差异是函数调用之间已经过去了时间。它的表示方式并不完全理想,但它减去 1 天,然后添加 back 小时、分钟和秒的差异。

当我运行代码时,我得到了

23:59:59.979191
,这意味着函数调用之间花费了 0.02... 秒。

如果您想要实际的日差,请使用:

from datetime import datetime, timezone
import pytz
today = datetime.now().replace(tzinfo=pytz.timezone('Asia/Kolkata'))
today_again = datetime.now().replace(tzinfo=pytz.timezone('Asia/Kolkata'))
print((today_again - today).days)
© www.soinside.com 2019 - 2024. All rights reserved.