Закрывающая строка в LocalTime с / без nanoOfSeconds

Мне нужно преобразовать строку в LocalTime (java-8, а не joda), которая может иметь или не иметь nanoOfSeconds в строке. Формат String имеет вид07:06:05 или же07:06:05.123456 Строка может иметь или не иметь десятичное место в секундах, и когда это произойдет, может быть любое количество символов для представления части Nano Seconds.

Использование DateTimeForamtter, такого как

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("H:mm:ss");

или же

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("H:mm:ss.SSSSSS");

Я могу использовать оператор IF для различения двух форматов, таких как:

DateTimeFormatter dtf;
if (time1.contains(".") {
   dtf = DateTimeFormatter.ofPattern("H:mm:ss.SSSSSS);
} else {
   dtf = DateTimeFormatter.ofPattern("H:mm:ss);
}

Это прекрасно работает, и я в порядке с этим, но мне нужно иметь возможность использовать различное количество позиций после десятичной точки.

Примерный набор данных может быть:

[11:07:59.68750, 11:08:00.781250, 11:08:00.773437500, 11:08:01]

Есть ли способ позволить форматировщику анализировать любое количество цифр после десятичной дроби безjava.time.format.DateTimeParseException когда число десятичных знаков неизвестно?

Я надеюсь, что упустил что-то действительно простое.

Ответы на вопрос(2)

Ваш ответ на вопрос