首頁 > Java > java教程 > 主體

如何解析 Java 8 日期偏移量中缺少冒號的 ISO 8601 字串?

Patricia Arquette
發布: 2024-11-04 11:16:29
原創
683 人瀏覽過

How to Parse an ISO 8601 String with a Missing Colon in the Offset to Java 8 Date?

解析在Java 8 日期偏移量中缺少冒號的ISO 8601 字符串

問題:

Java 8 的ZonedDateTime.parse() 方法無法解析偏移量中缺少冒號的ISO 8601 格式的日期字串,例如「2018-02-13T10:20:12.120 0000.」

解:

直到bug 被修正(Java 8 到121):

使用具有自訂模式的DateTimeFormatter 來指定偏移量中缺少的冒號:

<code class="java">String input = "2018-02-13T10:20:12.120+0000";
DateTimeFormatter f = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSSX");
OffsetDateTime odt = OffsetDateTime.parse(input, f);</code>
登入後複製

修正錯誤時:

只要使用ISO 8601 字串呼叫OffsetDateTime.parse() ,無模式:

<code class="java">OffsetDateTime odt = OffsetDateTime.parse("2018-02-13T10:20:12.120+0000");</code>
登入後複製

詳細資訊:

  • OffsetDateTime 類別表示具有相對UTC 偏移量的日期,此偏移量適合輸入字串。
  • 預設情況下,java.time 使用 ISO 8601 格式進行解析,但它需要冒號偏移量。
  • DateTimeFormatter 允許自訂,使您能夠指定冒號的存在。
  • 為了避免歧義,建議在偏移量中使用冒號,始終提供小時和分鐘(即使為零),並將零填充到一位數分鐘的左側。

以上是如何解析 Java 8 日期偏移量中缺少冒號的 ISO 8601 字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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