Как я могу проанализировать длительность с скачком секунды до секунд?
Например, мы получаем от другой службы следующую длительность 00:00:60, что означает 1 минуту, а Java 8 DateTimeFormatter.ofPattern("HH:mm:ss[.SSS]")
throws
java.time.format.DateTimeParseException: Text '00:00:60' could not be parsed: Invalid value for SecondOfMinute (valid values 0 - 59): 60
Это имеет смысл, поскольку в стандарте ISO, используемом Java, нет понятия 60 секунд.
Я бы хотел избежать использования String::replace
(в качествепредлагается в других SO-ответах на аналогичный случай) и использование внешней библиотеки, если это возможно.
Это текущий код, который вызывает исключение:
private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss[.SSS]");
public static Integer parseToSeconds(String durationText) {
return LocalTime.parse(durationText, TIME_FORMATTER).toSecondOfDay();
}