3

当我将带有时区信息的时间(例如:2013-02-27T14:00:00-05:00)发布到 Django 日期时间字段时,会引发表单错误“输入有效的日期/时间。”。

我的表单字段定义如下

 time = forms.DateTimeField()

我还尝试将日期格式传递给提交的表单。例如:

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

Django DateTimeField 不支持带有时区信息的时间吗?

4

1 回答 1

1

是的!Django DateTimeField 支持时区,但如果您查看文档,则必须将其与表单中的实际 DateTime 分开指定。具体来说,文档建议您为每个用户激活一个时区,否则您将始终在默认时区中输入 DateTime。

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

这是我用于项目的文档,效果很好。

此外,如果您需要在表单字段中指定特定时区,您始终可以创建一个包含所有时区的下拉字段,然后使用正确的时区将 DateTime 保存在您的视图中。

于 2013-06-05T00:02:12.773 回答