Проверка времени
От: Дмитрий Писаренко Россия http://dmitripisarenko.me
Дата: 11.03.08 10:24
Оценка:
Здравствуйте!

Мне надо проверить текст — является ли этот текст временем в формате 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), а потом пропарсить части, но не хочется изобретать велосипед, если его уже изобрели

Заранее благодарен

Дмитрий
Дмитрий Писаренко

http://dmitripisarenko.me
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.