Sto semplicemente cercando di convertire una stringa di data in un oggetto DateTime in Java 8. Dopo aver eseguito le seguenti righe:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDateTime dt = LocalDateTime.parse("20140218", formatter);
Ottengo il seguente errore:
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)
La sintassi è identica a ciò che è stato suggerito qui , eppure mi viene servita un'eccezione. Sto usando JDK-8u25
.
LocalDate
e nonLocalDateTime
. Il problema era che avevo creato il mioDateTimeFormatter
utilizzo.withResolverStyle(ResolverStyle.STRICT);
, quindi dovevo usare il modello di datauuuuMMdd
invece diyyyyMMdd
(cioè "anno" anziché "anno-era-epoca")!