У меня есть даты в формате ISO 8601 в базе данных, %Y-%m-%d
. Однако когда дата передается в шаблон, получается что-то вроде Oct. 16, 2011
.
Есть ли способ изменить формат так, как я хочу?
Ответы:
В вашем шаблоне вы можете использовать date
фильтр Django . Например:
<p>Birthday: {{ birthday|date:"M d, Y" }}</p>
Дает:
День рождения: 29 января 1983 г.
Дополнительные примеры форматирования см. В документации по фильтру даты .
Установите оба DATE_FORMAT
иUSE_L10N
Чтобы внести изменения для всего сайта в Django 1.4.1, добавьте:
DATE_FORMAT = "Y-m-d"
в свой settings.py
файл и отредактируйте:
USE_L10N = False
поскольку l10n отменяет DATE_FORMAT
Это задокументировано по адресу: https://docs.djangoproject.com/en/dev/ref/settings/#date-format.
Просто используйте это:
{{you_date_field|date:'Y-m-d'}}
Будет показано что-то вроде 2016-10-16 . Вы можете использовать формат как хотите.
Чтобы изменить формат даты в views.py, а затем назначить его шаблону.
# get the object details
home = Home.objects.get(home_id=homeid)
# get the start date
_startDate = home.home_startdate.strftime('%m/%d/%Y')
# assign it to template
return render_to_response('showme.html'
{'home_startdate':_startDate},
context_instance=RequestContext(request) )
Что вам нужно, так это фильтр шаблона даты .
например:
<td>Joined {{user.date_created|date:"F Y" }}<td>
Это возвращает Joined December 2018
Если вам нужно показать короткую дату и время (11.08.2018 03:23), вы можете сделать это следующим образом:
{{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}
Подробная информация об этом теге здесь и больше о датах в соответствии с заданным форматом здесь
Пример:
<small class="text-muted">Last updated: {{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}</small>