Django模板中如何使用filter进行时间和日期的格式化

2023-04-08 00:00:00 模板 格式化 如何使用

在Django模板中,使用filter进行时间和日期的格式化非常简单,可以通过一些内置的过滤器实现。下面是具体的使用方法和代码演示。

  1. 时间格式化

使用date过滤器可以将时间转换为特定的格式,格式可以是一个日期对象的字符串表示,也可以是一个在settings.py中定义的日期格式。

例如,假设我们有一个名为created_date的时间对象,在模板中应该这样使用:

<p>创建时间:{{ created_date|date:'Y 年 m 月 d 日 H:i:s' }}</p>

这里的date过滤器将created_date对象转换为类似"2021年09月21日 11:49:12"的字符串格式。

  1. 日期格式化

使用time过滤器可以将日期转换为特定的格式,和date过滤器一样,time过滤器也可以接收一个日期对象并返回一个特定格式的字符串。

例如,假设我们有一个名为birthday的日期对象,在模板中应该这样使用:

<p>生日:{{ birthday|time:'Y 年 m 月 d 日' }}</p>

这里的time过滤器将birthday对象转换为类似"1990年09月21日"的字符串格式。

下面是完整的sample.html文件演示代码:

<!DOCTYPE html>
<html>
<head>
    <title>时间和日期格式化演示</title>
</head>
<body>
    <h1>时间和日期格式化演示</h1>
    <p>博客文章创建时间:{{ created_date|date:'Y 年 m 月 d 日 H:i:s' }}</p>
    <p>皮蛋的生日:{{ birthday|time:'Y 年 m 月 d 日' }}</p>
</body>
</html>

在这个例子中,我们假定created_date是一个包含博客文章创建时间的时间对象,birthday是一个包含皮蛋的生日的日期对象。

下面是完整的views.py文件演示代码:

from django.shortcuts import render
from datetime import datetime

def sample(request):
    created_date = datetime.now()
    birthday = datetime.strptime('1990-09-21', '%Y-%m-%d')
    return render(request, 'sample.html', {'created_date': created_date, 'birthday': birthday})

在这个例子中,我们通过调用datetime.now()方法获得了当前时间,然后通过strptime()方法将"1990-09-21"字符串转换为日期对象。

最后,我们在视图函数中将这些变量传递给sample.html模板,让它们在HTML页面中显示。

相关文章