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

Java 6下如何用Joda Time解析带Z标识的特定日期格式

解决Joda Time解析带Z的ISO日期格式报错问题

你的报错原因是自定义格式串未匹配日期字符串末尾的Z标识。Z是ISO 8601格式中代表UTC时区的标记,你的格式串yyyy-MM-dd'T'HH:mm:ss只覆盖到秒部分,没有处理最后的Z,导致解析失败。

解决方案1:使用Joda Time预定义的ISO格式(推荐)

Joda Time提供了专门处理ISO 8601日期的预定义格式化器,无需手动编写格式串,直接解析带Z的日期:

String dateString = "2022-08-02T23:00:59Z";
DateTimeFormatter formatter = ISODateTimeFormat.dateTime();
DateTime dateTime = formatter.parseDateTime(dateString);

解决方案2:修改自定义格式串匹配Z

如果你坚持使用自定义格式串,有两种写法:

  1. 将Z作为字面量处理(用单引号包裹):
String pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'";
String dateString = "2022-08-02T23:00:59Z";
DateTimeFormatter formatter = DateTimeFormat.forPattern(pattern);
DateTime dateTime = formatter.parseDateTime(dateString);
  1. 将Z作为时区标识处理(Joda Time会自动识别为UTC+00:00):
String pattern = "yyyy-MM-dd'T'HH:mm:ssZ";
String dateString = "2022-08-02T23:00:59Z";
DateTimeFormatter formatter = DateTimeFormat.forPattern(pattern);
DateTime dateTime = formatter.parseDateTime(dateString);

注意:确保你使用的Joda Time版本兼容Java 6(推荐2.x系列版本,均支持Java 6)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 02:52:16