2015-12-04 1 views
-1

Привет есть способ проверить, если вход даты в Java, формат даты DD/MM/YYYY так int\int\int я основную проверку if (x != ""), но мне было интересно, если вы убедитесь, что он это дата.Убедитесь, что вход является дата Java

Теперь I'me получить новый код ошибки:

try { 
     date = (Date) dateFormat.parse(dateInput); 
} catch (ParseException e1) { 
       System.out.println("FAIL!!!!!!!!"); 
       JOptionPane.showMessageDialog(null, "Date entered is incorrect, please close this window and try again"); 
       new BookApp(); 
      } 

Отступы, вероятно, получил перепутались, когда я скопировать и вставить его, но когда формат не так работает, а диалоговое всплывающее меню. Но когда я даю 12\08\2015, он дает ClassCastError. Как это сделать?

ответ

3

1) Создание форматчика для даты шаблона:

DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); 

2) Попробуйте отформатировать входную строку с датой:

Date date = dateFormat.parse(input); 

Теперь, если входной сигнал не совпадает с вашим шаблон, вы получаете ParseException.

+1

и изменить МММ ММ – Rustam

+0

Сегодня было трудно, спасибо за исправление меня дважды :) – Berger

+0

привет, когда я добавить '12/08/1998', например, он бросает' ClassCastException' но формат является правильным, любой Идея, как остановить это? –

0

Вы всегда можете попытаться проанализировать дату и захватить, если синтаксический анализ был успешным или нет.

SimpleDateFormat выдаст исключение, если строка не была проанализирована как дата.

public boolean isDate(String dateString) { 
    try { 
     SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); 
     return dateFormat.parse(dateString) != null; 
    } catch (ParseException e) { 
     return false; 
    } 
} 
Смежные вопросы