You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Jinja将JSON时间戳转换为指定格式时间?

问题

我有如下简单JSON:

{
     "ts": "2022-07-17T09:24:21.840227"
}

我希望使用Jinja将其转换为可读的日期时间格式。尝试了以下两种写法,但均未得到预期结果:

  • {{ ts | iso8601_to_time | datetimeformat('%a, %B %d %Y, %H:%M:%S') }}
  • {{ ts | timestamp_to_time | datetimeformat('%a, %B %d %Y, %H:%M:%S') }}

期望得到的格式:

Sun, July 17 2022, 09:24:17
解答

Jinja核心库本身没有iso8601_to_time或timestamp_to_time这类过滤器,也不存在datetimeformat过滤器,你需要用标准的Jinja过滤器组合来实现:

方法1:使用to_datetime + strftime(适用于Jinja 2.11+或Ansible等集成环境)

先通过to_datetime把ISO格式的字符串转换成datetime对象,再用strftime按照指定格式输出:

{{ ts | to_datetime | strftime('%a, %B %d %Y, %H:%M:%S') }}

方法2:手动调用Python的datetime方法(通用场景)

如果你的环境中没有to_datetime过滤器,可以直接借助Python的datetime.fromisoformat方法来转换:

{{ ts | datetimefromisoformat | strftime('%a, %B %d %Y, %H:%M:%S') }}

注意事项

  • 如果时间字符串包含时区信息,转换时需保留时区,避免出现时间偏移问题;
  • strftime的格式化符号和Python标准一致,可根据需求调整格式参数。

内容的提问来源于stack exchange,提问作者Pan Veduci

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 08:30:41