关于Python的datetimefield格式

Format for DateTimeField

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Converting string into datetime

在Django中,我得到这个错误"以YYYY-MM-DD hh:mm[:ss[.uuuuuuuu]]格式输入有效的日期/时间"。当我试图将字符串"22-dec-2009"分配给模型中的日期时间字段时。

如何使datetimefield接受格式为"2009年12月22日"的日期字符串?


您可以将输入格式作为input_formats参数传递给DateTimeField,这样您就可以这样做了。

1
2
3
4
5
6
# 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,...)

如果您直接想将日期str分配给models.DateTimeField,最好的方法是在手工前将其转换为datetime

1
mymodel.date_of_birth = datetime.datetime.strptime("22-DEC-2009","%d-%b-%Y")