如何在django中减去两个datetime变量

时间:2017-01-01 05:19:18

标签: django

now = datetime.today()

for item in itemList:
    elapsed = item.endDate
    if elapsed - now > 1:
        item.overdue = 1
    elif now - now > 3:
        item.banned = 1

不能减去offset-naive和offset-aware datetimes

2 个答案:

答案 0 :(得分:0)

您可以了解时区"现在"来自django.utils.timezone

from django.utils import timezone
now = timezone.now()
  

启用时区支持(USE_TZ = True)时,Django使用   时区感知日期时间对象。如果您的代码创建了日期时间   对象,他们也应该知道。

但是,请确认您正在按照您的意图比较dates,因为date没有tzinfo而datetime没有:

答案 1 :(得分:0)

now = datetime.now(timezone.utc)

for item in itemList:
    elapsed = now - item.endDate               
    bannedDiff = now - item.endDate
    if elapsed > timedelta(days=-1):
        item.overdue = 1
    elif bannedDiff > timedelta(days=-6):
        item.banned = 1

想出来!谢谢!