DateTimeField的格式

时间:2009-12-22 09:40:05

标签: python django

  

可能重复:
  Converting string into datetime

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

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

1 个答案:

答案 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")