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.