【发布时间】:2020-10-07 22:10:07
【问题描述】:
datetime 给出了非常诡异的结果:
在:
tz = pytz.timezone('America/New_York')
d1 = datetime.now(tz)
d2 = datetime.now(tz) + timedelta(seconds=0)
delta = d1-d2
print(delta, delta.seconds, delta.total_seconds(), sep="\n")
输出:
-1 day, 23:59:59.999930
86399
-7e-05
我尝试过使用和不使用时区,使用和不使用timedelta(seconds = 0) 并得到相同的结果。
当我这样做时:
tz = pytz.timezone('America/New_York')
d1 = datetime.now(tz)
d2 = d1 + timedelta(seconds=0)
delta = d1-d2
print(delta, delta.seconds, delta.total_seconds(), sep="\n")
我按预期得到 0。 我做了什么?!
我正在导入如下(如果这可能是问题):
from datetime import datetime, timedelta
import pytz
我读错了增量打印,我没有意识到它是 -1 天 + 23:59。哎呀。。
【问题讨论】:
-
这太吓人了
-
反转对象顺序:
d2-d1 -
@Duckasaur:接受 Jonathon 的答案是正确的,不要试图通过编辑你的问题来回答。