String timeString = "10:10";
LocalTime time = LocalTime.parse(timeString);
System.out.println(time);
Это печатает
10:10
Впрочем, я немного лукавлю. Как я прочитал ваш вопрос, вы запросили объект даты и времени с форматом HH:mm
в нем. Ни объект LocalTime
(используемый в приведенном выше фрагменте), ни объект Date
(используемый в вашем коде) не могут иметь формат. То, что вы получаете, когда вы объединяете Date
со строкой или печатаете LocalTime
, является результатом метода toString
объекта, и вы не можете изменить этот метод (только в подклассах, и вы этого не хотите). Другими словами, если вам нужен определенный формат, вам нужно указать этот формат в строке вне объекта даты и времени.
Удачная часть заключается в том, что LocalTime.toString()
создает нужный вам формат (пока секунды и доли секунды равны нулю, иначе они тоже были бы в строке).
Будет ли это работать на вашем устройстве Android? Так и будет. LocalTime
— это класс JSR-310, также известный как java.time
, современный API даты и времени Java, представленный почти 4 года назад, в начале 2014 года. JSR-310 был портирован на Java 6 и 7 в ThreeTen Backport, который, в свою очередь, был адаптировано для Android в ThreeTenABP. Так что скачайте ThreeTenABP, добавьте его в свой проект и наслаждайтесь тем, насколько приятнее работать с ним, чем с устаревшими классами даты и времени.
PS В вашем вопросе есть ошибка в строке шаблона формата: hh
в нижнем регистре означает час в пределах AM или PM от 1 до 12, что хорошо работает, когда часы равны 10, но не всегда. Я убежден, что вам нужны прописные буквы HH
для часа дня в интервале от 0 до 23. Когда я запускаю ваш код со строкой 12:12
, я получаю Чт 01 января 00:12:00 CET 1970. Часы 0, а не 12 .
Ссылки
person
Ole V.V.
schedule
27.12.2017
LocalTime
JSR-310 (современный API даты и времени Java, также известный какjava.time
) создан для вас! Вы можете использовать JSR-310 на Android через ThreeTenABP, см. Как использовать ThreeTenABP в Android Проект. - person Ole V.V.   schedule 27.12.2017SimpleDateFormat
давно устарел и заведомо проблематичен, а с современным API даты и времени работать намного приятнее. Я должен сказать, что это безопасная ставка. - person Ole V.V.   schedule 27.12.2017Date
не может иметь формат, он всегда печатается какThu Jan 01 10:00:00 GMT+05:00 1970
(его методtoString
создает этот формат). Любой формат всегда внеDate
и вString
. См. Все о java.util.Date. - person Ole V.V.   schedule 27.12.2017