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
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