Python:如何在Jinja2格式化日期?

问题:

使用Jinja2,如何格式化日期字段?我在Python中知道我可以这样做:

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

但是如何在Jinja2中格式化日期?谢谢。

回答:

有两种方法可以实现。例如,直接方法是简单地调用(和打印)模板中的strftime()方法

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

另一个更好的方法是定义你自己的过滤器,例如:

from flask import Flask
import babel

app = Flask(__name__)

def format_datetime(value, format='medium'):
    if format == 'full':
        format="EEEE, d. MMMM y 'at' HH:mm"
    elif format == 'medium':
        format="EE dd.MM.y HH:mm"
    return babel.dates.format_datetime(value, format)

app.jinja_env.filters['datetime'] = format_datetime

(此过滤器基于关于i18n的原因,但您也可以使用strftime)。过滤器的优点是可以写入

{{ car.date_of_manufacture|datetime }}
{{ car.date_of_manufacture|datetime('full') }}

看起来更好,更可维护。另一个常见的过滤器也是“timedelta”过滤器,它评估为“8分钟前写”。您可以使用babel.dates.format_timedelta,并将其注册为与此处给出的datetime示例类似的过滤器。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Python: How do I format a date in Jinja2?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 30 = 33