Bonjour,
Je ne connais pas beaucoup les expressions régulières et comment les faire, alors j'aimerais savoir si quelqu'un sait comment faire pour vérifier ce format de date en expression régulière : (MM: DD: YYYY: HH: MN: SS)
Merci beaucoup.
Bonjour,
Je ne connais pas beaucoup les expressions régulières et comment les faire, alors j'aimerais savoir si quelqu'un sait comment faire pour vérifier ce format de date en expression régulière : (MM: DD: YYYY: HH: MN: SS)
Merci beaucoup.
A mon avis utiliser une expression régulière n'est pas le plus simple ... Jette un oeil à SimpleDateFormat ...
Une petit regex comme ceci te conviendrai t il
Ceci permet les chaines du type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part [(](0[1-9]|1[012])(: )(0[1-9]|[12]\d|3[01])\2(19|20)\d\d\2([01]\d|2[0-3])\2([0-5]\d)\2([0-5]\d)[)]
(06: 14: 1985: 23: 12: 30)
Le problème de la regexp c'est que tu vas avoir des 31 février sans pb![]()
Alors que SimpleDateFormat gère très bien tout ca ...
Merci pour la regexp
Comment utilise t-on le SimpleDateFormat?Envoyé par chtig
Merci de votre aide
Moi j'ai donné l'expression régulière associé a la demande, il etait pas dit qu'il fallait bloquer les 31 février
Code : Sélectionner tout - Visualiser dans une fenêtre à part DateFormat dateFormat = new SimpleDateFormat("(MM: dd: yyyy: HH: mm: ss)");
Mais comment je fais pour comparer la valeur saisie avec ce format?Envoyé par zorm
Euh ... en regardant la javadoc ou en faisant une recherche sur ce forum![]()
J'ai mis cela :
Est-ce comment ca que je dois faire?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 try{ SimpleDateFormat sdf= new SimpleDateFormat("(MM:dd:yyyy: HH:mm:ss)"); Date ladate = sdf.parse(value); //value est la valeur saisie par l'utilisateur if(ladate == null){ errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.station.downuntil")); saveErrors(request, errors); } } catch(Exception e){ errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.station.downuntil")); saveErrors(request, errors); }
Ca bloque à :
Il n'arrive pas à parser la valeur même si je met une date valide, pourquoi?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Date ladate = sdf.parse(value);
1) Les catch Exception c'est moche
2) Tu as vu où que la date renvoyée pouvait être nulle dans la javadoc ?
3) Jette un oeil à setLenient(...)
4) voir l'utilisation de ParsePosition
Les points 2,3 et 4 sont dans la javadoc, le point 1 dans n'importe quel tuto Java ...
Je n'arrive pas trop à utiliser la javaDoc.Envoyé par chtig
Pour le point 2, j'ai cherché sur le forum des topics avec SimpleDateFormat et j'avais vu que quelqu'un l'utilisait mais je ne savais pas si c'était bon ou pas.
Je vais essayer de voir la javaDoc si je comprends comment faire.
La javadoc c'est vraiment le truc le plus important à mon sens en Java ... Bien comprendre comment elle est faite etc, c'est super super important !
Regarde la doc de la méthode parse, on t'explique pas mal normalement![]()
Je connais la javaDoc et je l'ai déjà regardé plusieurs fois mais elle ne m'aide pas à trouver mes solutions ou très rarement.Envoyé par chtig
J'ai regardé et je ne suis pas plus avancé que tout à l'heure. Je continue des chercher des infos.
J'ai trouvé, j'ai écrit ca et ca fonctionne très bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SimpleDateFormat sdf= new SimpleDateFormat("MM:dd:yyyy: HH:mm:ss"); Date ladate = sdf.parse(value); String parseDate = sdf.format(ladate); if(!parseDate.equals(value)){ errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.station.downuntil")); saveErrors(request, errors); }
N'oublie pas la gestion des exceptions ...
Oui je l'ai gérer mais je n'ai mis que le code correspondant à la vérification de la date.Envoyé par chtig
Partager