Bonjour,
J'ai un petit soucis pour parser une date dans le but d'une vérification.
J'utilise les Pattern pour effectuer cette vérification, voici mon code ci-dessous :
Lorsque j'essai de parser la date suivante : "2007-09-21", la méthode me retourne qu'il ne s'agit pas d'une date... j'imagine qu'il y a donc une erreur dans ma définition d'une date anglaise (cf variable 'myEnglishModel').
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
16
17
18
19
20
21
22
23
24
25
26 boolean myValider = false; Pattern myRegexDate = null; Matcher myMatchDate = null; System.out.println("Date to parse : "+theValue); String mySimpleModel = "^[0-9]{8}$"; String myFrenchModel = "^(([0-2]?|[0-9]|3[0-1])[/-]{0,1}([0]?[1-9]|1[0-2])[/-]{0,1}([1-2][0-9]{3}))$"; String myEnglishModel = "^(([1-2][0-9]{3})[/-]{0,1}([0]?[1-9]|1[0-2])[/-]{0,1}([0-2]?|[0-9]|3[0-1]))$"; // --- English date test : myRegexDate = Pattern.compile(myEnglishModel); myMatchDate = myRegexDate.matcher(theValue); myValider = myMatchDate.find(); if ( myValider == true ) return true; // --- French date test : myRegexDate = Pattern.compile(myFrenchModel); myMatchDate = myRegexDate.matcher(theValue); myValider = myMatchDate.find(); if ( myValider == true ) return true;
Quelqun pourrait m'aider à trouver l'erreur en question ?
J'imagine que l'erreur est du au tiret de séparation '-' puisqu'il s'agit d'un opérateur, quelqun sait comment le déclarer pour qu'il soit pris en compte comme un caractère voulu ?
PS : j'ai essayé de passer par la valeur héxadécimal du caractère en remplacant '-' par '\x2D', mais j'ai une erreur java qui me dis que ce n'est pas acceptée dans une String...
Merci beaucoup.
Partager