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 的格式 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 DRF 中使用与 models.DateTimeField 相同的日期/时间格式
Django Admin DateTimeField 显示 24 小时格式时间