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
答案 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
想出来!谢谢!