如何确定服务端返回的日期字符串对应的正确解析格式?
日期字符串解析格式解答
你之前的解析失败核心原因是输入的日期字符串包含6位微秒级的秒小数部分,你使用的yyyy-MM-dd'T'HH:mm:ssXXX格式未匹配该部分字段。
正确解析方案
- 如果你使用的是Java 8+ 内置的
java.time时间库(或其他兼容ISO 8601微秒解析的时间库),正确的匹配格式为:yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX,其中SSSSSS对应6位的微秒小数位。 - 如果你使用的是旧版
SimpleDateFormat,该工具只支持最多3位毫秒级解析,无法直接处理6位微秒。你可以先对原始字符串做截断处理,把秒后面的小数部分保留前3位后,再使用yyyy-MM-dd'T'HH:mm:ss.SSSXXX格式解析。
Java 8+ 解析示例代码
String rawDate = "2021-10-14T17:53:03.753588+05:30"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX"); OffsetDateTime parsedDate = OffsetDateTime.parse(rawDate, formatter);
内容的提问来源于stack exchange,提问作者QM Dev
相关产品推荐
相关产品推荐

