Формат Django DateField как формат ISO

Я использую Django для обслуживания некоторого XML. Часть требований заключается в том, что мои даты форматируются следующим образом: 1969-12-31T18: 33: 28-06: 00

Как я могу вывести DateField в Django в этом формате?

Ответы

Ответ 1

Если вы посмотрите на дату в документации Django, вы увидите, что поддерживаются различные форматы даты. В основном в шаблоне вам нужно:

{{ value|date:"some format string" }} 

где строка формата может быть одной из тех, которые определены в дате на странице выше или один из пользовательских, определенных в рамках функции now (которая включает формат ISO 8601), которая также находится на странице, связанной с выше. Я предполагаю, что когда вы выходите на xml, вы делаете это аналогично шаблону для обычной веб-страницы.

Обновление (август 2014 года)

Как указано в другом ответе Эдгара Р, начиная с версии 1.2, теперь вы можете использовать встроенный переключатель для вывода даты в формате ISO 8601 с использованием строки формата: c

Ответ 2

Новое в Django 1.2, есть тег шаблона, который выводит то, что вы хотите:

{{ value|date:"c"}}

Из документации по шаблону Django:

c | ISO 8601 Формат | 2008-01-02T10: 30: 00,000123

Технически это ближе к W3-DTF, но достаточно близко