2013-06-04 65 views
2

當我發佈帶時區信息的時間時,例如:2013-02-27T14:00:00-05:00到Django日期時間字段會引發表單錯誤「輸入有效日期/時間」。Django DateTimeField是否支持帶時區信息的時間?

我的表單字段定義如下

time = forms.DateTimeField() 

我還試圖在日期格式傳遞給日提交的形式。例如:

DATE_FORMATS = [ 
    '%Y-%m-%dT%H:%M:%S-%z', 
] 
time = forms.DateTimeField(input_formats=DATE_FORMATS) 

是否Django DateTimeField不支持帶時區信息的時間?

+0

從[時區文檔](https://docs.djangoproject.com/zh/dev/topics/i18n/timezones/#time-zone-aware-input-in-forms):*當您啓用時區支持,Django解釋在當前時區輸入表單中的日期時間,並將'datetime'對象返回到'cleaned_data'中* –

+0

因此,不支持將時區添加爲條目表單的一部分。 –

回答

0

是的! Django DateTimeField支持時區,但是如果您查看文檔,則必須將其與表單中的實際DateTime分開指定。具體而言,文檔建議您以每個用戶爲基礎激活一個時區,否則最終會在默認時區中輸入DateTime。

https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#time-zone-aware-input-in-forms

這是我用我的項目文檔,和它的工作搞好。此外,如果您需要在表單域中指定特定時區,則始終可以創建一個包含其中所有時區的下拉字段,然後使用正確的時區將日期時間保存在視圖中。