在Django中我收到此错误“以YYYY-MM-DD HH:MM [:ss [.uuuuuu]]格式输入有效日期/时间。”当我尝试将字符串“22-DEC-2009”分配给模型中的DateTimeField时。
如何使DateTimeField接受格式为“22-DEC-2009”的日期字符串?
答案 0 :(得分: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")