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

Java 11解析带偏移量日期字符串为Instant报错Java15正常的原因

版本差异原因说明

该问题是JDK不同版本对Instant.parse()方法的解析规则调整导致的:

  • Java 11及更早版本中,Instant.parse()仅支持严格符合ISO_INSTANT标准的字符串,要求时间偏移量必须使用UTC标识Z表示,仅接受2021-10-15T08:39:05Z这类格式的输入,无法识别+02:00这类带正负号的时区偏移后缀,因此你输入的字符串会在偏移量起始位置(索引19)抛出解析异常。
  • Java 12及后续版本(包括你使用的Java 15),官方对Instant.parse()的解析能力做了扩展,新增了对ISO_OFFSET_DATE_TIME格式的支持,可以直接解析带任意时区偏移的时间字符串,因此你的代码在Java 15中可以正常运行。

如果需要在Java 11环境中兼容该解析需求,可以使用如下方案:

Instant result = OffsetDateTime.parse("2021-10-15T08:39:05+02:00").toInstant();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:24:05