首頁 >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」

問題:

問題:

問題:

問題:
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();
}

Instant.parse("2015-04-28T14:23:38.521Z")
問題:問題:問題:問題:問>當嘗試解析日期字串時,例如「2010-10-02T12:23:23Z」使用Java Date API,拋出例外:「java.lang.IllegalArgumentException:非法模式字元'T'」。為什麼會出現這種情況,是否需要手動拆分解析字串? 答案:字串中的‘T’字符,代表時間分隔符,是問題的原因。要解決此問題,需要在模式字串中使用單引號 ('') 轉義“T”字元。正確的模式應該是「yyyy-MM-dd'T'hh:mm:ssZ」。 範例:或者,對於 Java 8 及更高版本,建議請改用 Instant.parse,它提供了一種更強大、更現代的日期解析方法。

以上是為什麼在 Java 的 Date API 中解析「2010-10-02T12:23:23Z」會拋出「非法模式字元『T』」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn