Я пытаюсь проанализировать следующую строку timestamp 03-feb-2014 13:16:31
с помощью java.time
, но это ошибка. Вот мой код.Java8 LocalDateTime parsing error
String timestamp = "03-feb-2014 13:16:31";
DateTimeFormatter format;
DateTimeFormatterBuilder formatBuilder = new DateTimeFormatterBuilder();
formatBuilder.parseCaseInsensitive();
formatBuilder.append(DateTimeFormatter.ofPattern("dd-MMM-YYYY HH:mm:ss"));
format = formatBuilder.toFormatter();
LocalDateTime localdatetime = LocalDateTime.parse(timestamp, format);
Но я получаю следующее сообщение об ошибке.
Exception in thread "main" java.time.format.DateTimeParseException: Text '03-feb-2014 13:16:31' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: {DayOfMonth=3, MonthOfYear=2, WeekBasedYear[WeekFields[SUNDAY,1]]=2014},ISO resolved to 13:16:31 of type java.time.format.Parsed
at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1920)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1855)
at java.time.LocalDateTime.parse(LocalDateTime.java:492)
at com.target.util.CntrlmProcessor.main(CntrlmProcessor.java:24)
Caused by: java.time.DateTimeException: Unable to obtain LocalDateTime from TemporalAccessor: {DayOfMonth=3, MonthOfYear=2, WeekBasedYear[WeekFields[SUNDAY,1]]=2014},ISO resolved to 13:16:31 of type java.time.format.Parsed
at java.time.LocalDateTime.from(LocalDateTime.java:461)
at java.time.format.Parsed.query(Parsed.java:226)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
От ошибки это выглядит как библиотека смогла разобрать строку, как она отделена все поля от времени, но, кажется, что-то, что я пропал без вести.
Я попытался разобрать только временную часть временной метки, и это работает нормально.
это отличное объяснение! Кроме того, я включил ваше предложение. :) – mahacoder