Часовой пояс Django в тот же день diff не 0

Тестовая функция

from django.utils import timezone

def date_diff_now(date):
    print(date)
    print(timezone.now())
    print(date - timezone.now())
    print((date - timezone.now()).days)

Результат

2018-02-07 17:46:36.442314+00:00
2018-02-07 17:47:32.084900+00:00
-1 day, 23:59:04.357374
-1

Почему разница между 2 datetime в тот же день не возвращает 0?

1 ответ

Решение

Из основного времени и дат

Если нормализованное значение дней лежит за пределами указанного диапазона, повышается значение OverflowError.

Обратите внимание, что нормализация отрицательных значений может сначала удивить. Например,

>>> from datetime import timedelta
>>> d = timedelta(microseconds=-1)
>>> (d.days, d.seconds, d.microseconds)
(-1, 86399, 999999)

Так что похоже на известную ошибку переполнения.

Другие вопросы по тегам