Здравствуйте!
Мне надо проверить текст — является ли этот текст временем в формате HH:MM?
Для этого я делаю так:
final SimpleDateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
Date time = null;
try
{
time = TIME_FORMAT.parse(aTimeAsString);
final Calendar calendar = Calendar.getInstance();
int hour;
int minute;
calendar.setTime(time);
hour = calendar.get(Calendar.HOUR_OF_DAY);
minute = calendar.get(Calendar.MINUTE);
if ((hour < 0) || (hour > MAX_HOURS) || (minute < 0) || (minute > MAX_MINUTES))
{
time = null;
}
}
catch (ParseException exception)
{
time = null;
}
Проблема в том, что такая проверка пропускает тексты вроде "27:95". Парсер считает это нормальным, и проверка с помощью календаря (calendar) тоже ничего не даёт — "25:00" переводится как "02:00".
Вопрос: Есть какой-то уже встроенный в Яву механизм, при помощи которого можно проверить текст на соответствие формату HH:mm, где HH может быть 00-23, mm — 00-59 ?
Я знаю, что можно разчленить текст (split), а потом пропарсить части, но не хочется изобретать велосипед, если его уже изобрели
Заранее благодарен
Дмитрий