Django日期输入解析?

时间:2010-05-03 07:01:28

标签: python django datetime

我正在尝试从用户那里获取活动的日期。 输入只是一个简单的html文本输入。 我的主要问题是我不知道如何解析日期。

如果我尝试传递原始字符串,我会得到一个TypeError,如预期的那样。

Django是否有任何日期解析模块?

4 个答案:

答案 0 :(得分:7)

如果您使用的是django.forms,请查看DateField.input_formats。此参数允许定义多种日期格式。 DateField尝试按顺序解析原始数据。

答案 1 :(得分: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()的更多信息,请here

答案 2 :(得分:0)

(2017年),您现在可以使用django.utils.dateparse

答案 3 :(得分:0)

DateField可以在Django表单之外使用。

示例,在模板中使用{{ value|date:"SHORT_DATE_FORMAT" }}

from django.forms import DateField
from django.utils import formats
# need '%d.%m.%Y' instead of 'd.m.Y' from get_format()
dformat = ('.' + formats.get_format("SHORT_DATE_FORMAT", lang=request.LANGUAGE_CODE)).replace('.', '.%').replace('-', '-%').replace('/', '/%')[1:]
dfield = DateField(input_formats=(dformat,))
<date> = dfield.to_python(<string>)