¿Cómo puedo cambiar el formato de plantilla de fecha predeterminado de Django?


100

Tengo fechas en formato ISO 8601 en la base de datos %Y-%m-%d. Sin embargo, cuando se pasa la fecha a la plantilla, aparece como algo así como Oct. 16, 2011.

¿Hay alguna forma de que pueda manipular el formato a lo que quiera?

Respuestas:



274

Dentro de su plantilla, puede usar el datefiltro de Django . P.ej:

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

Da:

Cumpleaños: 29 de enero de 1983

Más ejemplos de formato en los documentos de filtro de fecha .


Creo que esto solo funciona si la fecha se proporciona como un objeto de fecha y hora. ¿Qué pasa si es solo una cadena pasada desde la vista?
Mohammed Shareef C

2
Para una cadena arbitraria que contiene una fecha / hora, probablemente la analizaría en una fecha y hora de Python en el código de vista. (O incluso antes si es posible, donde sea que la cadena de fecha llegue por primera vez a mi código). Pero si realmente desea usar cadenas para pasar fechas y horas a sus plantillas de Django, esta respuesta parece útil.
medmunds

Perfecto ejemplo anterior para usar en el archivo de plantilla.
Vinod Patidar


20

Solo usa esto:

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

Esto mostrará algo como 2016-10-16 . Puede utilizar el formato que desee.


8

Para cambiar el formato de fecha en views.py y luego asignarlo a la plantilla.

# 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

Si necesita mostrar una fecha y hora cortas (08/11/2018 03:23 am) puede hacerlo así:

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

Detalles de esta etiqueta aquí y más sobre fechas según el formato dado aquí

Ejemplo:

<small class="text-muted">Last updated: {{your_date_field|date:"SHORT_DATE_FORMAT"}} {{your_date_field|time:"h:i a"}}</small>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.