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.