首頁 > Java > java教程 > 主體

為什麼當偏移量缺少冒號時,在 Java 8 中解析 ISO 8601 字串會很困難?

Susan Sarandon
發布: 2024-10-31 02:37:29
原創
272 人瀏覽過

Why Is It Difficult to Parse ISO 8601 Strings in Java 8 When the Offset Lacks a Colon?

在Java 8 解析ISO 8601 字串的困難:偏移中缺少冒號

Java 的日期和時間解析功能可能會令人沮喪,尤其是在處理時ISO 8601 格式的字串在偏移量中缺少冒號。讓我們探索這個問題並使用新的 java.time API 提供解決方案。

問題描述:

嘗試解析類似「2018-02-13T10」的日期字串時:20:12.120 0000" 使用舊版java.util.Date 類別,流程順利成功。 :

Date date = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSSZZZ")
                      .parse("2018-02-13T10:20:12.120+0000");
登入後複製

問題在於使用了錯誤的類別進行解析。 🎜>

臨時錯誤解決方法:
ZonedDateTime dateTime = ZonedDateTime.parse("2018-02-13T10:20:12.120+0000",
                   DateTimeFormatter.ofPattern("yyyy-MM-dd'T'hh:mm:ss.SSSZZZ"));
登入後複製

不幸的是,由於Java 8 中的錯誤,您在解析在小時和分鐘之間省略冒號的偏移量字符串時可能會遇到問題。 >

定義格式化模式:
OffsetDateTime odt = OffsetDateTime.parse( 
    "2018-02-13T10:20:12.120+0000" , 
    DateTimeFormatter.ofPattern( "uuuu-MM-dd'T'HH:mm:ss.SSSX" )
);
登入後複製
建構DateTimeFormatter 時使用明確格式化模式。注意事項:

如果您需要UTC 格式的值,請擷取Instant 物件。 >

透過了解適當的類別並處理錯誤,您可以有效地解析和操作日期使用java.time API 採用ISO 8601 格式。問題。

以上是為什麼當偏移量缺少冒號時,在 Java 8 中解析 ISO 8601 字串會很困難?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!