datetime.now() - date.now() 返回 -1 天

datetime.now() - date.now() is returning -1 days

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。糟糕..

您正在呼叫 datetime.now() 两次。当然,这两个调用之间经过了一些时间。

您的增量计算是倒退的。应该是:

delta = d2-d1