在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" ) );
如果您需要UTC 格式的值,請擷取Instant 物件。 >
透過了解適當的類別並處理錯誤,您可以有效地解析和操作日期使用java.time API 採用ISO 8601 格式。問題。
以上是為什麼當偏移量缺少冒號時,在 Java 8 中解析 ISO 8601 字串會很困難?的詳細內容。更多資訊請關注PHP中文網其他相關文章!