DateTimeField的格式

3 投票
1 回答
21973 浏览
提问于 2025-04-15 17:16

可能是重复的问题:
将字符串转换为日期时间

在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")

撰写回答