Coverting String to LocalTime com / sem nanoOfSeconds

Preciso converter uma string para LocalTime (java-8 não joda) que pode ou não ter nanoOfSeconds na string. O formato String está na forma de07:06:05 ou07:06:05.123456 A sequência pode ou não ter uma casa decimal nos segundos e, quando existir, pode haver qualquer número de caracteres para representar a parte Nano Segundos.

Usando um DateTimeForamtter como

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

ou

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

Eu posso usar uma instrução IF para distinguir entre os dois formatos, como:

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

Isso funciona bem e eu estou bem com isso, mas preciso poder usar também um número variável de posições após o ponto decimal.

Um conjunto de dados de amostra pode ser:

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

Existe uma maneira de permitir que o formatador analise qualquer número de dígitos após o decimal sem lançar umjava.time.format.DateTimeParseException quando o número de casas decimais é desconhecido?

Espero perder algo realmente simples.

questionAnswers(2)

yourAnswerToTheQuestion