Cadena de conversión a tiempo local con / sin nanoOfSeconds

Necesito convertir una cadena a LocalTime (java-8 no joda) que puede o no tener nanoOfSeconds en la cadena. El formato de cadena tiene la forma de07:06:05 o07:06:05.123456 La cadena puede o no tener un lugar decimal en los segundos y, cuando lo hace, puede haber cualquier número de caracteres para representar la parte de Nano Segundos.

Usando un DateTimeForamtter como

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

o

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

Puedo usar una declaración IF para distinguir entre los dos formatos, tales como:

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

Esto funciona bien y estoy de acuerdo con esto, pero necesito poder usar también un número variable de posiciones después del punto decimal.

Un conjunto de datos de muestra podría ser:

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

¿Hay alguna manera de permitir que el formateador analice cualquier número de dígitos después del decimal sin que arroje unjava.time.format.DateTimeParseException cuando se desconoce el número de decimales?

Espero perder algo realmente simple.