在Django模板标签内本地化日期时间

时间:2017-03-05 10:51:25

标签: python django

我正在研究Django中的模板标签,它应该处理一些日期和时间格式。

我希望这个日期以荷兰语显示,但它一直以英语显示。

来自django导入模板

register = template.Library()

@register.filter()
def get_date_string(event):
    if event.date_type == 1:
        retval = event.date_1.strftime("%-d %B %Y")
        if event.date_1_starttime is not None:
            retval += " van " + event.date_1_starttime.strftime("%H:%M")
        if event.date_1_endtime is not None:
            retval += " tot " + event.date_1_endtime.strftime("%H:%M")

        return retval

根据Python documentation %B应提供本地化的月份全名。

在模板中我只使用:

{{ object|get_date_string }}

我希望有人可以帮助我。

1 个答案:

答案 0 :(得分:0)

感谢this answer我能够让事情顺利进行。

这是我的最终解决方案:

from django import template
from django.template.defaultfilters import date as _date

register = template.Library()


@register.filter()
def get_date_string(event):
    if event.date_type == 1:
        retval = _date(event.date_1)
        if event.date_1_starttime is not None:
            retval += " vanaf " + event.date_1_starttime.strftime("%H:%M")
        if event.date_1_endtime is not None:
            retval += " tot " + event.date_1_endtime.strftime("%H:%M")

        return retval

我所做的就是使用Django日期过滤器为我做日期格式化。