Django HTML 日期模板标签

Django HTML template tag for date

我从互联网上的 API 获取日期数据,但它是一个字符串。如何使用 django HTML 模板标签将其转换为以下格式?

当前日期数据格式: 2022-02-13 00:00:00 协调世界时

我的愿望格式: 2022 年 2 月 13 日00:00

我希望另一种格式: 2022 年 2 月 13 日

因为在模板中使用起来并不那么简单Python,我们需要创建自定义模板标签。让我们从在您的应用程序中创建文件夹开始,我们将其命名为 custom_tags.py。它应该在 YourProject/your_app/templatetags/ 文件夹中创建,因此我们还必须在其中创建 templatetags 文件夹。

custom_tags.py:

from django import template
import datetime

register = template.Library()

@register.filter(name='format_date')
def format_date(date_string):
    return datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S %Z')

your_template.html:

{% load custom_tags %}

{{ datetime_from_API|format_date|date:'d F Y j:i' }}

# or if that does not work - I can't check it right now

{% with datetime_from_API|format_date as my_date %}
    {{ my_date|date:'d F Y j:i' }}
{% endwith %}

如果您可以直接获取 datetime 个对象,您可以在模板中使用 date 标签。

用法:

with hour:
{{ some_model.datetime|date:'d F Y j:i' }}

date only:
{{ some_model.datetime|date:'d F Y' }}

Django DOCS

中阅读更多内容