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

求助:将Jira API返回的特殊日期格式转换为LocalDate

解决Jira API日期格式转LocalDate的问题

你的问题出在日期字符串末尾的**时区偏移部分(+0000)**未被解析,之前使用的Formatter都没包含这部分规则,因此触发了未解析文本的报错。

正确处理方案:

  1. 先创建包含时区偏移规则的DateTimeFormatter,格式字符串用"yyyy-MM-dd'T'HH:mm:ss.SSSZ",其中Z专门匹配+0000这种四位数字的时区偏移格式。
  2. 将字符串解析为带时区的OffsetDateTime对象,再通过它转换为LocalDate(因为LocalDate本身不带时区,必须先处理原始字符串中的时区信息)。

代码示例:

import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;

public class JiraDateConverter {
    public static void main(String[] args) {
        String jiraDateTimeStr = "2022-10-26T09:34:00.000+0000";
        // 定义匹配Jira日期格式的Formatter
        DateTimeFormatter jiraFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
        
        // 解析为带时区的日期时间对象
        OffsetDateTime offsetDateTime = OffsetDateTime.parse(jiraDateTimeStr, jiraFormatter);
        // 转换为LocalDate
        LocalDate localDate = offsetDateTime.toLocalDate();
        
        System.out.println(localDate); // 输出:2022-10-26
    }
}

补充说明:

  • 这个Formatter不仅能处理+0000,其他类似格式的时区偏移(比如+0800)也能正常匹配。
  • 先解析为带时区的对象再转LocalDate,能保证日期的准确性(不同时区下的日期可能存在差异)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:10:33