DateTimeField的格式

Vis*_*hal 3 python django

可能重复:
将字符串转换为datetime

在Django中,我收到此错误"在YYYY-MM-DD HH:MM [:ss [.uuuuuu]]格式中输入有效日期/时间." 当我尝试将字符串"22-DEC-2009"分配给模型中的DateTimeField时.

如何使DateTimeField接受格式为"22-DEC-2009"的日期字符串?

Anu*_*yal 9

您可以将输入格式作为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,...)
Run Code Online (Sandbox Code Playgroud)

相反,如果您直接想要将date-str指定为models.DateTimeField最佳方式,只需将其转换为datetime手前即可

mymodel.date_of_birth = datetime.datetime.strptime("22-DEC-2009", "%d-%b-%Y")
Run Code Online (Sandbox Code Playgroud)