首頁 >Java >java教程 >為什麼在 Java 中解析帶有'T”的日期字串會拋出'非法模式字元'T'”異常?

為什麼在 Java 中解析帶有'T”的日期字串會拋出'非法模式字元'T'”異常?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-08 14:54:12536瀏覽

Why Does Parsing a Date String with

將日期字串解析為java.util.Date 時出現非法模式字元「T」

嘗試將日期字串解析為標準時使用Java Date API 執行date 操作時,您可能會遇到異常並顯示以下訊息:「非法模式字元'T'」。出現此錯誤的原因是指定用於解析的模式包含字元“T”,該字元未被識別為有效的模式字元。

原因:

「T」日期字串中的字元表示日期和時間部分之間的時間分隔符號。但是,預設的 SimpleDateFormat 模式不包含此字元。因此,解析器將其解釋為非法模式字元。

解決方案:

要解決此問題,主要有兩種方法:

1.自訂模式:

您可以指定包含「T」字元作為時間分隔符號的自訂模式。例如:

String pattern = "yyyy-MM-dd'T'HH:mm:ssZ";

2。單引號轉義:

或者,您可以使用單引號轉義「T」字元。這樣,它將被視為文字字元而不是模式字元。

String pattern = "yyyy-MM-dd'T'hh:mm:ssZ";

附加說明:

  • 在Java 8 及更高版本中,您可以使用DateTimeFormatter 類別更靈活、更簡潔地解析日期字元串。例如:
String input = "2010-10-02T12:23:23Z";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'");
LocalDateTime dateTime = LocalDateTime.parse(input, formatter);
  • 解析日期字串時記得將 TimeZone 設定為 UTC 或相關時區。

應用以下方法之一應該允許您成功解析以“T”字元作為時間分隔符的日期字串。

以上是為什麼在 Java 中解析帶有'T”的日期字串會拋出'非法模式字元'T'”異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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