DateTimeField的格式
可能是重复的问题:
将字符串转换为日期时间
在Django中,当我试图将字符串“22-DEC-2009”赋值给一个模型中的DateTimeField时,出现了这个错误:“请输入有效的日期/时间,格式为YYYY-MM-DD HH:MM[:ss[.uuuuuu]]”。
有没有办法让DateTimeField接受格式为“22-DEC-2009”的日期字符串呢?
1 个回答
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,...)
如果你想直接把一个日期字符串赋值给 models.DateTimeField
,最好的办法是先把它转换成 datetime
格式,比如说:
mymodel.date_of_birth = datetime.datetime.strptime("22-DEC-2009", "%d-%b-%Y")