224 votes

Comment formater une date dans Jinja2 ?

Avec Jinja2, comment puis-je formater un champ de date ? Je sais qu'en Python, je peux le faire simplement :

print(car.date_of_manufacture.strftime('%Y-%m-%d'))

Mais comment puis-je formater la date dans Jinja2 ?

5voto

Andrew Murphy Points 43

Utilisateurs de Google App Engine : Si vous passez de Django à Jinja2, et que vous cherchez à remplacer le filtre de date, notez que les codes de formatage des % sont différents.

Les codes de strftime % sont ici : http://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior

2voto

nandhini ram Points 1

Vous pouvez l'utiliser comme ceci dans le modèle jinja {{ row.session_start_date_time.strftime('%d-%m-%Y %H:%M:%S')}}

Dans ce code, le nom du champ est row.session_start_date_time .

1voto

euri10 Points 1084

Dans flask, avec babel, j'aime faire ça :

@app.template_filter('dt')
def _jinja2_filter_datetime(date, fmt=None):
    if fmt:
        return date.strftime(fmt)
    else:
        return date.strftime(gettext('%%m/%%d/%%Y'))

utilisé dans le modèle avec {{mydatetimeobject|dt}}

donc non avec babel vous pouvez spécifier vos différents formats dans messages.po comme ceci par exemple :

#: app/views.py:36
#, python-format
msgid "%%m/%%d/%%Y"
msgstr "%%d/%%m/%%Y"

0voto

chelodegli Points 1

J'utilise ce filtre, il est en espagnol mais vous pouvez changer les noms selon vos besoins.

@app.template_filter('datetime')
def date_format(value):
    months = ('Enero','Febrero',"Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre")
    month = months[value.month-1]
    hora = str(value.hour).zfill(2)
    minutos = str(value.minute).zfill(2)
    return "{} de {} del {} a las {}:{}hs".format(value.day, month, value.year, hora, minutos)

-3voto

mumubin Points 35

Il existe une extension jinja2 que vous pouvez utiliser, il suffit d'installer pip ( https://github.com/hackebrot/jinja2-time )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X