2009-12-22 79 views
2

Possible Duplicate:
Converting string into datetime格式DateTimeField字段

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

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

回答

8

您可以通过输入格式为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") 
+0

不接受models.DateTimeField的参数input_formats。 – Vishal 2009-12-23 03:11:04

+0

@Vishal,它说什么?你使用什么版本? – 2009-12-23 04:29:57

+0

@Auurag 错误:“/django/db/models/fields/__init__.py”,第459行,在__init__中 Field .__ init __(self,verbose_name,name,** kwargs) TypeError:__init __()关键字参数 'input_formats'” Django的版本: “1.1.1” /Django的/ DB /模型/田不包含DEFAULT_DATETIME_INPUT_FORMATS但/django/forms/fields.py做(这使得代码的运行) 有用发布: http://stackoverflow.com/questions/466345/converting-string-into-datetime – Vishal 2009-12-23 14:18:35