我试图用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