Django 日期输入解析?
我正在尝试从用户那里获取一个事件的日期。
输入只是一个简单的HTML文本框。
我主要的问题是我不知道怎么解析这个日期。
如果我直接传递原始字符串,就会出现一个类型错误,正如我预料的那样。
Django有没有什么可以解析日期的模块?
4 个回答
0
(在2017年),你现在可以使用 django.utils.dateparse 这个工具了。
6
说白了,Django 处理这个问题的方式和 Python 不一样。看起来我之前的理解有误,uptimebox 的回答给了我新的启发。
假设你要解析这个字符串:'Wed Apr 21 19:29:07 +0000 2010'(这是来自 Twitter 的 JSON API 的数据)
你可以把它解析成一个日期时间对象,方法如下:
import datetime
JSON_time = 'Wed Apr 21 19:29:07 +0000 2010'
my_time = datetime.datetime.strptime(JSON_time, '%a %b %d %H:%M:%S +0000 %Y')
print type(my_time)
这样做后,你会得到一个结果,确认它确实是一个日期时间对象:
<type 'datetime.datetime'>
关于 strptime()
的更多信息,可以在 这里 找到。
7
如果你在使用django.forms,可以看看DateField.input_formats。这个参数让你可以定义多种日期格式。DateField会按照这些格式的顺序来解析输入的数据。