📜  jinja2 日期时间格式 - Python (1)

📅  最后修改于: 2023-12-03 15:02:08.061000             🧑  作者: Mango

Jinja2 日期时间格式 - Python

Jinja2是一个流行的模板引擎,它允许开发者使用模板来生成HTML、XML、JSON等内容。其中,日期和时间是经常使用的数据类型之一。在本文中,我们将探讨如何在Jinja2中处理日期和时间。

1. 模板中获取当前日期和时间

要在Jinja2模板中获取当前的日期和时间,可以使用now过滤器。now过滤器将返回当前日期和时间的datetime对象。可以使用datetime对象的属性来获取年、月、日、小时、分钟、秒等信息。

{% set current_time = now() %}
<p>当前日期是 {{ current_time.year }} 年 {{ current_time.month }} 月 {{ current_time.day }} 日</p>
<p>当前时间是 {{ current_time.hour }} 点 {{ current_time.minute }} 分 {{ current_time.second }} 秒</p>

输出:

当前日期是 2022 年 9 月 16 日

当前时间是 16 点 37 分 22 秒

2. 格式化日期和时间

在模板中,我们可以使用strftime函数将日期转换为字符串。它将根据指定的格式返回日期和时间的字符串表示。下面是一些常见的格式化指令:

| 指令 | 描述 | |-----|-----| | %Y | 年份,比如 2022 | | %m | 月份,用数字表示,比如 09 | | %B | 月份的完整名称,比如 September | | %b | 月份的缩写,比如 Sept | | %d | 日期,比如 16 | | %A | 星期的完整名称,比如 Friday | | %a | 星期的缩写,比如 Fri | | %H | 小时,24小时制,比如 16 | | %I | 小时,12小时制,比如 04 | | %p | 上午/下午 | | %M | 分钟,比如 37 | | %S | 秒钟,比如 22 |

例如,以下示例显示当前日期和时间的字符串表示形式:

{% set current_time = now() %}
<p>当前时间是 {{ current_time.strftime("%Y-%m-%d %H:%M:%S") }}</p>

输出:

当前时间是 2022-09-16 16:37:22

3. 根据时间戳显示日期和时间

在模板中,我们可以使用fromtimestamp函数将时间戳转换为日期。然后,我们可以使用strftime函数将日期转换为字符串。

{% set timestamp = 1663433958 %}
{% set date = datetime.fromtimestamp(timestamp) %}
<p>日期是 {{ date.strftime("%Y-%m-%d") }}</p>
<p>时间是 {{ date.strftime("%H:%M:%S") }}</p>

输出:

日期是 2022-09-16

时间是 09:25:58

总结

本文介绍了如何在Jinja2中处理日期和时间。我们使用了now过滤器来获取当前日期和时间,使用strftime函数将日期转换为字符串,还使用了fromtimestamp函数将时间戳转换为日期。我们希望这些例子能够帮助您更好地理解如何在Jinja2中处理日期和时间。