DateTimeField 的格式 [重复]

Posted

技术标签:

【中文标题】DateTimeField 的格式 [重复]【英文标题】:Format for DateTimeField [duplicate] 【发布时间】:2010-12-29 01:12:07 【问题描述】:

可能重复:Converting string into datetime

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

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

【问题讨论】:

【参考方案1】:

您可以将输入格式作为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,...)

如果您直接想将 date-str 分配给 models.DateTimeField,最好的方法是事先将其转换为 datetime,例如

mymodel.date_of_birth = datetime.datetime.strptime("22-DEC-2009", "%d-%b-%Y")

【讨论】:

不接受模型的参数 input_formats.DateTimeField。 @Vishal ,它说了什么?你用的是什么版本? @Anurag 错误:“/django/db/models/fields/__init__.py”,第 459 行,在 init 字段中.__init__(self,verbose_name,name,* *kwargs) TypeError: __init__() got an unexpected keyword argument 'input_formats'” Django 版本:“1.1.1” /django/db/models/fields 不包含 DEFAULT_DATETIME_INPUT_FORMATS 但 /django/forms/fields.py 包含(其中使代码运行)有用的帖子:***.com/questions/466345/… 是的 form.fields 没有 db @hobs 在这种情况下从旧版本复制格式或使用新方法(编辑答案)

以上是关于DateTimeField 的格式 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Django —— DateTimeField格式

在 DRF 中使用与 models.DateTimeField 相同的日期/时间格式

Django Admin DateTimeField 显示 24 小时格式时间

如何更改 django 模型中的默认时间格式 [重复]

将日期时间字符串解析为 Django DateTimeField

以不同格式PHP转换日期格式[重复]