datetime.now () - date.now () возвращает -1 день - PullRequest
0 голосов
/ 18 июня 2020

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

Я неправильно читал дельта-распечатку, Я не понимал, что это был -1 день + 23:59. Упс ..

1 Ответ

4 голосов
/ 18 июня 2020

Вы звоните datetime.now() дважды. Конечно, между этими двумя вызовами прошло некоторое время.

Ваш расчет дельты обратный. Это должно быть:

delta = d2-d1
...