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.