2015-07-16 1 views
-1

J'ai un objet Date (jeu Jul 16 15:54:56 IST 2015).Expression régulière pour la date et l'heure courantes

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."); 
} 

S'il vous plaît donner suggestion "date" Expression régulière sans conversion à une forme quelconque.

+0

Qu'est-ce que vous voulez faire avec la date? – nhahtdh

+0

@anubhava J'ai besoin de comparer la date et l'heure actuelles avec l'expression régulière. Si elle correspond à la valeur renvoyée True, sinon false. – Sai

+0

Pourquoi ne pas comparer 'Date's directement? Ou événement 'String # equals'? Qu'essayez-vous de comparer? – MadProgrammer

Répondre

1

C'est le Regex dont vous avez besoin:

[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} 

Et dans votre code Java serait comme ceci:

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}")); 

Voici le Working DEMO.

+1

Merci de travailler comme le charme !!!! – Sai

+0

@paanipuri Vous êtes les bienvenus, heureux que ça aide, –

0

Quelque chose comme cela devrait aussi fonctionner, je pense qu'il est plus commode de lire le format de cette façon:

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;