Como posso alterar o formato do modelo de data padrão do Django?


100

Tenho datas no formato ISO 8601 no banco de dados %Y-%m-%d,. No entanto, quando a data é passada para o modelo, surge algo como Oct. 16, 2011.

Existe uma maneira de manipular o formato para o que eu quiser?

Respostas:



275

Dentro do seu template, você pode usar o datefiltro do Django . Por exemplo:

<p>Birthday: {{ birthday|date:"M d, Y" }}</p>

Dá:

Aniversário: 29 de janeiro de 1983

Mais exemplos de formatação nos documentos do filtro de data .


Acho que isso funciona apenas se a data for fornecida como um objeto datetime. E se for apenas uma string passada de vista?
Mohammed Shareef C

2
Para uma string arbitrária contendo uma data / hora, provavelmente eu a analisaria em uma data e hora python no código de exibição. (Ou mesmo antes, se possível - onde quer que aquela string de data chegue primeiro em meu código.) Mas se você realmente deseja usar strings para passar data e hora para seus templates Django, esta resposta parece útil.
medmunds

O exemplo acima perfeito para usar no arquivo de modelo.
Vinod Patidar


20

Basta usar isto:

{{you_date_field|date:'Y-m-d'}}

Isso mostrará algo como 2016-10-16 . Você pode usar o formato que desejar.


8

Para alterar o formato da data no views.py e então atribuí-lo ao template.

# 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) )  


6

Se precisar mostrar data e hora abreviadas (08/11/2018 03:23), você pode fazer assim:

{{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}

Detalhes para esta tag aqui e mais sobre datas de acordo com o formato fornecido aqui

Exemplo:

<small class="text-muted">Last updated: {{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}</small>
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.