【发布时间】:2025-12-11 00:30:01
【问题描述】:
在 Django 中,我收到此错误“以 YYYY-MM-DD HH:MM[:ss[.uuuuuu]] 格式输入有效日期/时间。”当我尝试将字符串“22-DEC-2009”分配给 model 中的 DateTimeField 时。
如何使 DateTimeField 接受格式为“22-DEC-2009”的日期字符串?
【问题讨论】:
在 Django 中,我收到此错误“以 YYYY-MM-DD HH:MM[:ss[.uuuuuu]] 格式输入有效日期/时间。”当我尝试将字符串“22-DEC-2009”分配给 model 中的 DateTimeField 时。
如何使 DateTimeField 接受格式为“22-DEC-2009”的日期字符串?
【问题讨论】:
您可以将输入格式作为input_formats 参数传递给DateTimeField,因此您可以这样做
# you can keep a list of formats yourself, or copy from django 1.2 version e.g.
# my_formats = fields.DEFAULT_DATETIME_INPUT_FORMATS + ['%d-%b-%Y']
# for latest django use this
from django.utils.formats import get_format
my_formats = get_format('DATETIME_INPUT_FORMATS')
field = DateTimeField(input_formats=my_formats,...)
如果您直接想将 date-str 分配给 models.DateTimeField,最好的方法是事先将其转换为 datetime,例如
mymodel.date_of_birth = datetime.datetime.strptime("22-DEC-2009", "%d-%b-%Y")
【讨论】: