首页 >Java >java教程 >为什么在 Java 的 Date API 中解析'2010-10-02T12:23:23Z”会抛出'非法模式字符'T'”?

为什么在 Java 的 Date API 中解析'2010-10-02T12:23:23Z”会抛出'非法模式字符'T'”?

Linda Hamilton
Linda Hamilton原创
2024-12-08 20:58:18624浏览

Why Does Parsing

将日期字符串解析为 java.util.Date 时出现非法模式字符“T”

问题:

当尝试解析日期字符串时,例如“2010-10-02T12:23:23Z”使用Java Date API,抛出异常:“java.lang.IllegalArgumentException:非法模式字符'T'”。为什么会出现这种情况,是否需要手动拆分解析字符串?

答案:

字符串中的‘T’字符,代表时间分隔符,是问题的原因。要解决此问题,需要在模式字符串中使用单引号 ('') 转义“T”字符。正确的模式应该是“yyyy-MM-dd'T'hh:mm:ssZ”。

示例:

String date = "2010-10-02T12:23:23Z";
String pattern = "yyyy-MM-dd'T'hh:mm:ssZ";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
try {
    Date d = sdf.parse(date);
    System.out.println(d.getYear());
} catch (ParseException e) {
    e.printStackTrace();
}

或者,对于 Java 8 及更高版本,建议请改用 Instant.parse,它提供了一种更强大、更现代的日期解析方法。

Instant.parse("2015-04-28T14:23:38.521Z")

以上是为什么在 Java 的 Date API 中解析'2010-10-02T12:23:23Z”会抛出'非法模式字符'T'”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn