datetime给出了非常诡异的结果。
In:
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")
Out:
-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
我读错了delta打印出来的数据,我没有意识到是 -1天+23: 59。糟糕。
你在调用 datetime.now()
两次。当然这两次通话之间有一定的时间间隔。
你的delta计算方法是反的。应该是这样的
delta = d2-d1