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 :

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;
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').

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.