2012-08-01 84 views
5

我有一個DateTimeFieldDjango的DateTimeField字段與datetime.now比較()

class Assignment (models.Model): 
    official_deadline = models.DateTimeField(null=True, blank=True) 

我需要它比較當前日期時間,我曾嘗試:

def official_deadline_past(self): 
    if datetime.datetime.today() > self.official_deadline: 
     return True 
    return False 

但它總是返回False我也試過:

def official_deadline_past(self): 
    if datetime.datetime.now() > self.official_deadline: 
     return True 
    return False 

但我有同樣的問題。

我有在該領域的信息:2011-07-02 00:00:00例如在由ModelForm

+0

您發佈的代碼應該有效。你可以添加更多的細節。如果您在方法中打印/記錄'self.official_deadline'的值,那麼值是多少? – Alasdair 2012-08-01 16:11:07

+0

我同意Alasdair - 你需要檢查比較返回的值。這是我喜歡使用django shell的時候。 – 2012-08-01 17:32:07

+0

我有''datetime.datetime(2011,7,2,5,0,tzinfo = )'當我問'assignment.official_deadline'時。當我問'assignment.official_deadline_past'時,'<綁定方法Assignment.official_deadline_past>>' – nlassaux 2012-08-02 10:25:38

回答

0

產生的形式,我與日期時間下蟒2.7.3比較DateTimeField字段類似的問題和DJANGO 1.3.1

我不認爲DateTimeField具有良好的時區支持,或者我沒有正確配置它。

每當我爲datetime字段指定時區時,我所有的DateTimeField> datetime比較都會失敗。

datetime使用本地中央時間,而DateTimeField作爲東部輸入。

我最終只是把一個愚蠢的黑客添加到日期時間中心對象「轉換」到東部timedelta(小時= 1)。