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

Java中如何构建对应2011-05-08T07:33:00.000+05:30格式的DateTimeFormatter?

Java中适配2011-05-08T07:33:00.000+05:30格式的DateTimeFormatter编写方案

针对你给出的日期时间格式,先拆解各部分对应的DateTimeFormatter模式符号:

  • 2011(四位年份)→ yyyy
  • -05(两位月份)→ MM
  • -08(两位日期)→ dd
  • T(固定分隔符)→ 'T'(用单引号包裹字面量)
  • 07(24小时制小时)→ HH
  • :33(两位分钟)→ mm
  • :00(两位秒数)→ ss
  • .000(三位毫秒)→ SSS
  • +05:30(带冒号的时区偏移)→ XXX

基于以上对应关系,直接构建DateTimeFormatter即可,代码示例如下:

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

public class DateFormatExample {
    public static void main(String[] args) {
        // 构建适配目标格式的DateTimeFormatter
        DateTimeFormatter targetFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
        
        // 示例1:解析目标格式的字符串为OffsetDateTime
        String inputDateTime = "2011-05-08T07:33:00.000+05:30";
        OffsetDateTime offsetDateTime = OffsetDateTime.parse(inputDateTime, targetFormatter);
        
        // 示例2:将OffsetDateTime格式化为目标格式字符串
        String formattedDateTime = offsetDateTime.format(targetFormatter);
        System.out.println(formattedDateTime); // 输出: 2011-05-08T07:33:00.000+05:30
    }
}

补充说明

  • 这里使用OffsetDateTime是因为目标格式只包含时区偏移量(而非具体时区ID),如果需要处理带时区ID的场景,可以改用ZonedDateTime,该Formatter同样适用。
  • 模式中的XXX专门匹配带冒号的偏移格式(如+05:30),如果是不带冒号的偏移格式(如+0530),则需要替换为XX。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:05:26