Django从ISO8601时间戳字符串模型DateTimeField

aut*_*omy 4 django datetime

Django新手在这里.我正在为带有字符串时间戳的SQLite数据库制作一个Django模型,例如2014-09-23T18:43:26.692Z.因为我想最终使用Django的过滤引擎进行查询(而不是使用strftime),我希望我的模型从ISO字符串生成DateTimeField对象.如果我尝试在原始数据库字段上声明DateTimeField,就像这样

startTime = models.DateTimeField(db_column='startTime')
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:'unicode'对象没有属性'isoformat'

我做了一些挖掘并尝试了以下代码:

startTime = models.DateTimeField(dateutil.parser.parse(models.TextField(db_column='startTime'))
Run Code Online (Sandbox Code Playgroud)

但现在错误是AttributeError:'TextField'对象没有属性'read'.我究竟做错了什么?这甚至是正确的方法吗?

use*_*623 16

由于没有人愿意回答这个并且它出现在谷歌搜索的顶部,这里是为了节省一些额外的搜索.正如有人提到Django自己的dateparse模块最适合这项工作并将ISO8601和许多其他格式转换为Python的datetime.datetime宾语.它也是时区,因此是Django项目的理想选择.

from django.utils import dateparse

x = '2014-09-23T18:43:26.692Z'
y = dateparse.parse_datetime(x)
print y
Run Code Online (Sandbox Code Playgroud)

瞧..!

2014-09-23 18:43:26.692000+00:00
Run Code Online (Sandbox Code Playgroud)