Исключение "Невозможно получить LocalDateTime" связано с тем, что анализируемый текст имеет только значения время , значения дата отсутствуют, поэтому невозможно создатьЛокальный Дата Объект времени.
Анализ вместо LocalTime
вместо:
LocalTime time = LocalTime.parse("18:14:00");
System.out.println(dateTime); // Prints: 18:14
The *Шаблон 1019 * является значением по умолчанию для LocalTime
, поэтому его не нужно указывать (см .: DateTimeFormatter.ISO_LOCAL_TIME
).
Если вы хотите / нуждаетесь в LocalDateTime
объект, проанализированный аналогично тому, как SimpleDateFormat
сделал это, то есть по умолчанию 1 января 1970 года, то вам нужно явно указать значение даты по умолчанию:
DateTimeFormatter fmt = new DateTimeFormatterBuilder()
.append(DateTimeFormatter.ISO_LOCAL_TIME)
.parseDefaulting(ChronoField.EPOCH_DAY, 0)
.toFormatter();
LocalDateTime dateTime = LocalDateTime.parse("18:14:00", fmt);
System.out.println(dateTime); // Prints: 1970-01-01T18:14
Для сравнения, это эквивалентно старому SimpleDateFormat
результату:
Date date = new SimpleDateFormat("HH:mm:ss").parse("18:14:00");
System.out.println(date); // Prints: Thu Jan 01 18:14:00 EST 1970