Гибкое высокоуровневое решение использует java.time, современный Java-интерфейс даты и времени.
Для многих целей не следует преобразовывать время из одного строкового формата в другой.В вашей программе лучше хранить время суток как LocalTime
объект.Также как вы храните числа в переменных int
или double
, а не в строках.Когда вы получите строку, разберите ее на LocalTime
первым делом.Только когда вам нужно выдать строку, отформатируйте LocalTime
в нужную строку.
Синтаксический ввод
DateTimeFormatter givenFormatter = DateTimeFormatter.ofPattern("hh:mm:ssa", Locale.ENGLISH);
String s = "07:45:19PM";
LocalTime time = LocalTime.parse(s, givenFormatter);
Форматирование и вывод на печать
DateTimeFormatter wantedFormatter = DateTimeFormatter.ofPattern("hh mm ss");
String wantedString = time.format(wantedFormatter);
System.out.println(wantedString);
Вывод:
07 45 19
Учебное пособие
Обучающее руководство по Oracle: Дата и время , объясняющее, как использовать java.time.