2017-01-01 71 views
0
now = datetime.today() 

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

兩個日期時間變量不能減去偏移天真和偏移感知日期時間如何減去在Django

回答

0

您可以從django.utils.timezone得到一個時區感知「現在」。

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

時區支持啓用(USE_TZ = TRUE),Django使用 時區感知datetime對象。如果您的代碼創建日期時間 對象,他們也應該知道。

但後來確實也確認您比較dates你似乎打算,作爲date沒有tzinfo而datetime作用:

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 

想通了!謝謝!