Django日期时间返回负值,即使日期尚未结束



我在日期时间方面有这个问题,我也不了解日期时间模块和django日期,我试图实现的是获取保存在数据库中的恒定日期时间和当前日期之间的差异天数。你看,问题是,即使今天还没有结束,我还是消极了——一天,这一天还没有结束。

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获取系统的时区信息?

最新更新