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

Jinja中基于ISO8601时间按6小时跨度划分的格式化方法咨询

解决方案

要实现按6小时跨度划分时间并添加对应编号的需求,你可以在原有日期格式化的基础上,结合时间的小时数做整数除法计算,具体写法分两种场景:

如果你是在Python代码中直接处理:

# 假设time是已经解析好的datetime对象
formatted_time = f"{time.strftime('%Y-%m-%d')}_{time.hour // 6}"

如果你是在模板引擎(比如Jinja2,对应你用的{{ }}语法)中使用:

{{ time.strftime('%Y-%m-%d') }}_{{ time.hour // 6 }}

逻辑解释:

  • 原有部分time.strftime('%Y-%m-%d')负责生成你需要的日期字符串(比如2018-01-23)
  • time.hour会提取时间中的小时数(比如你的例子里是8)
  • 整数除法// 6会把小时数映射到对应的6小时块:
    • 00:00-06:00 → 0(第一个6小时跨度)
    • 06:00-12:00 → 1(第二个6小时跨度,对应你的示例场景)
    • 12:00-18:00 → 2(第三个6小时跨度)
    • 18:00-24:00 → 3(第四个6小时跨度)
  • 最后用下划线_将日期和块编号拼接,得到你想要的格式。

示例验证:

当time = 2018-01-23T08:11:58.000000时:

  • 日期部分输出2018-01-23
  • 小时数8除以6取整得到1
  • 最终拼接结果为2018-01-23_1,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:15:18