首頁 > Java > java教程 > 為什麼在 Java 的 Date API 中解析「2010-10-02T12:23:23Z」會拋出「非法模式字元『T』」?

為什麼在 Java 的 Date API 中解析「2010-10-02T12:23:23Z」會拋出「非法模式字元『T』」?

Linda Hamilton
發布: 2024-12-08 20:58:18
原創
627 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板