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天而不是零?
在没有时区信息的情况下尝试过,发现工作正常
您误解了输出。函数调用需要时间,您看到的差异是函数调用之间已经过去了时间。它的表示方式并不完全理想,但它减去 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)