我只是試圖將日期字符串轉換爲DateTime對象在Java中8.在運行以下行:無法解析LocalDateTime(Java 8)當從TemporalAccessor獲得LocalDateTime
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDateTime dt = LocalDateTime.parse("20140218", formatter);
我得到以下錯誤:
Exception in thread "main" java.time.format.DateTimeParseException:
Text '20140218' could not be parsed:
Unable to obtain LocalDateTime from TemporalAccessor:
{},ISO resolved to 2014-02-18 of type java.time.format.Parsed
at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1918)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1853)
at java.time.LocalDateTime.parse(LocalDateTime.java:492)
的語法是相同的東西已建議here,但我有一個例外服務。我正在使用JDK-8u25
。
對於它的價值:即使使用'LocalDate'而不是'LocalDateTime',我也有同樣的問題。問題是我使用'.withResolverStyle(ResolverStyle.STRICT);'創建了'DateTimeFormatter',所以我必須使用日期模式'uuuuMMdd'而不是'yyyyMMdd'(即「year」而不是「year-of-時代」)! – ZeroOne 2016-03-22 10:44:26
@ZeroOne謝謝你'uuuu'正是這個問題的答案,如果在嚴格模式下運行 – 2016-09-09 17:58:35
@ZeroOne這是一個嚴格的解析器的正確答案。非常感謝! – 2017-04-10 03:12:37