2015-07-16 2 views
-1

У меня есть объект Date (чт 16 июля 15:54:56 IST 2015).Регулярное выражение для текущей даты и времени

Date date = new Date(); 

if(vea.isDateValid("Thu Jul 16 15:04:45 IST 2015","regex")){ 
    System.out.println("Given Date" + " is a valid date format."); 
} else { 
    System.out.println("Given Date" + " is an invalid date format."); 
} 

Пожалуйста, дайте предложения по «дата» регулярного выражения без преобразования в любой форме.

+0

Что это, что вы хотите сделать с датой? – nhahtdh

+0

@anubhava Мне нужно сравнить текущую дату и время с регулярным выражением. Если он соответствует, возвращает True, else false. – Sai

+0

Почему бы не сравнить 'Date's напрямую? Или событие 'String # equals'? Что вы пытаетесь сравнить? – MadProgrammer

ответ

1

Это Regex вам нужно:

[A-Z][a-z]{2}\\s[A-Z][a-z]{2}\\s[0-9]{2}\\s[0-9]{2}:[0-9]{2}:[0-9]{2}\\s[A-Z]{3}\\s[0-9]{4} 

И в вашем Java коде будет выглядеть так:

Date dt=new Date(); 
String dateString = dt.toString(); 

System.out.println(dateString.matches("[A-Z][a-z]{2}\\s[A-Z][a-z]{2}\\s[0-9]{2}\\s[0-9]{2}:[0-9]{2}:[0-9]{2}\\s[A-Z]{3}\\s[0-9]{4}")); 

Вот Working DEMO.

+1

спасибо работа как очарование !!!! – Sai

+0

@paanipuri Добро пожаловать, рад, что это помогает, –

0

Что-то, как это должно работать, я думаю, что это более удобно читать этот формат так:

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd hh:mm:ss z YYYY); 

    try { 
     Date date = sdf.parse(dateToValidate); 
    } catch (ParseException e) { 
     return false; 
    } 
    return true;