我試圖用Java 8新的日期格式而非喬達和我有以下問題:的Java 8 LocalDateTime ZonedDateTime不能與時區的解析日期
兩個
ZonedDateTime.parse("02/05/16 11:51.12.083 +04:30", DateTimeFormatter.ofPattern("dd/MM/yy HH:mm.ss.SSS Z"))
和
LocalDateTime.parse("02/05/16 11:51.12.083 +04:30", DateTimeFormatter.ofPattern("dd/MM/yy HH:mm.ss.SSS Z"))
拋出'java.time.format.DateTimeParseException'異常。 雖然
org.joda.time.DateTime.parse("02/05/16 11:51.12.083 +04:30", DateTimeFormat.forPattern("dd/MM/yy HH:mm.ss.SSS Z"))
工作正常。
原因的異常是:
java.time.format.DateTimeParseException:文本'02/5月16日11:51.12.083 04:30' 無法在索引被解析22
我做錯了什麼?
你試過OffsetDateTime?它沒有足夠的信息來知道實際的時區;它所承載的全部是與UTC的偏移量。 –
雖然從[docs](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html)中的示例中,似乎冒號被接受爲區域偏移量分隔符,但是當你嘗試它時,它會拋出異常。如果你只是刪除冒號它應該工作。所以你的日期時間字符串應該是'02/05/16 11:51.12.083 + 0430' –
@Hank DI試過這個OffsetDateTime.parse(「02/05/16 11:51.12.083 +04:30」,DateTimeFormatter.ofPattern (「dd/MM/YY HH:mm.ss.SSS Z」)),但我仍然得到相同的異常。 – ampofila