2010-05-03 4 views
6

Я пытаюсь получить дату для события от пользователя. Ввод - это простой ввод текста в формате HTML. Моя основная проблема заключается в том, что я не знаю, как разбирать дату.Django Date Input Parsing?

Если я пытаюсь передать необработанную строку, я получаю TypeError, как и ожидалось.

Есть ли в Django модули синтаксического анализа даты?

ответ

7

Если вы используете django.forms, посмотрите на DateField.input_formats. Этот аргумент позволяет определить несколько форматов даты. DateField пытается разобрать необработанные данные в соответствии с этими форматами в порядке.

+3

Другими словами, OP * должна * быть с помощью Django формы, которые будут заботиться об этом, если вы установите input_formats правильно. –

7

Django, если не сказать, Python делает. Кажется, я здесь не так, как показывает ответ на uptimebox.

Допустим, вы разборе эту строку: «ср 21 апр 19:29:07 +0000 2010» (Это из 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) 

Вы бы получить это, подтверждая это объект DateTime:

<type 'datetime.datetime'> 

Более подробную информацию о strptime() можно найти here.