Закрывающая строка в 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
когда число десятичных знаков неизвестно?
Я надеюсь, что упустил что-то действительно простое.