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

将ISO 8601 datetime转为Jira兼容格式,求更Pythonic实现方案

适配JIRA REST API的Python日期时间格式转换优化

JIRA REST API对日期时间字符串的要求特殊且严格,与标准ISO 8601不完全兼容:

  • ISO兼容格式示例:2023-06-25T20:32:13+00:00
  • JIRA兼容格式示例:2023-06-25T20:32:13.00+0000

要让ISO格式适配JIRA,需做两处修改:

  • 时区偏移采用[+-]hhmm格式,而非ISO的[+-]hh:mm;
  • 必须包含小数秒(即使为0),例如2023-06-25T20:32:13+0000不被接受,但2023-06-25T20:32:13.00+0000符合要求。

以下是你提供的转换代码:

import datetime

planned_finish_date = (datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(hours=5)).isoformat(sep='T', timespec='seconds')

planned_finish_date = planned_finish_date.rsplit("+", 1)[0] + ".00+" + planned_finish_date.rsplit("+", 1)[1].replace(":", "")

更Pythonic的实现方式

直接使用datetime.strftime()进行格式化,一步生成符合要求的字符串,无需后续字符串拆分拼接:

import datetime

# 生成目标时间
target_dt = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(hours=5)
# 直接格式化为JIRA兼容格式
jira_date = target_dt.strftime("%Y-%m-%dT%H:%M:%S.00%z")

strftime的%z参数会直接输出+HHMM格式的时区偏移,完全匹配JIRA要求,代码更简洁可读。

现成工具库推荐

如果频繁和JIRA API交互,推荐使用官方jira Python库(可通过pip install jira安装),它会自动处理日期时间格式转换,无需手动编写格式化逻辑:

from jira import JIRA
import datetime

# 初始化JIRA客户端
jira_client = JIRA(server='你的JIRA服务器地址', basic_auth=('用户名', '密码'))
target_dt = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(hours=5)

# 创建Issue时直接传入datetime对象,库会自动转换为JIRA兼容格式
new_issue = jira_client.create_issue(
    project='项目键',
    summary='测试任务',
    description='任务描述',
    issuetype={'name': 'Task'},
    duedate=target_dt  # 直接传datetime对象即可
)

内容的提问来源于stack exchange,提问作者Ameen Ali Shaikh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:13:13