Django datetime возвращает отрицательное значение, даже если дата не закончилась

У меня такая проблема с датой-временем, я не понимаю модуль datetime и django dates, то, чего я пытаюсь достичь, это получить разницу дней между постоянным временем, сохраненным в базе данных, и текущей датой. Проблема в том, что хотя сегодня еще не закончился день, я получаю отрицательный -1 день, а день еще не закончился.

from django.utils.timezone import now

class ExamplModel(models.Model):
    due_date = models.DateTimeField()


    # model method
    def get_due_date(self):
        days_left = due_date - now()
        return days_left

если due_date сегодня, пару часов назад, пример, я получу результат вроде этого -1 day, 18:54:04.590519 вместо 0 day, 18:54:04.590519

Как я могу решить эту проблему.

Попробуйте это...

Дает смещение UTC, но также учитывает переход на летнее время.

 import time
 offset = time.timezone if (time.localtime().tm_isdst == 0) else time.altzone
 offset / 60 / 60 * -1
-9

Значение time.timezone или time.altzone указывается в секундах к западу от UTC (области к востоку от UTC получают отрицательное значение). Это противоположно тому, как нам хотелось бы, поэтому * -1.

от... Получить информацию о часовом поясе системы в Python?

Вернуться на верх