[Java] SimpleDateFormat : bug ?

SimpleDateFormat : bug ? [Java] - Java - Programmation

Marsh Posté le 29-08-2005 à 17:05:42    

Salut salut,
 
Le code suivant permet de vérifier que la date qu'on parse (ici 2005) est correcte :

Code :
  1. try {
  2. SimpleDateFormat sdf = new SimpleDateFormat("yyyy" );
  3. sdf.setLenient(false);
  4. Date date = sdf.parse("2005" );
  5. System.out.println("false" );
  6. }
  7. catch (Exception e) {
  8. System.out.println("true" );
  9. }


 
Le problème, c'est que si on essaye de parser la date 20p05, toujours avec le même code, ça ne sort pas d'erreur, car 20 est probablement considérée comme une année correcte.
 
En fait je me pose ce problème, car je dois vérifier qu'une date saisie est correcte intégralement.
Genre par exemple, que 2005-04-12 soit acceptée, mais que 2005-04-04m soit rejetée. Or, pour cette dernière, la méthode parse ne bronche pas (je ne parle pas des cas trivaux qui fonctionne très bien, comme 2005/12-01, 2005-1t3-10, 2005-14-13, ...)
 
Est-ce un bug ? Y'a-t-il moyen de lui préciser que si y'a des caractères en fin de chaine ça plante ?
 
Merci de votre aide.


Message édité par SamR le 29-08-2005 à 17:06:06
Reply

Marsh Posté le 29-08-2005 à 17:05:42   

Reply

Marsh Posté le 29-08-2005 à 17:58:31    

Bonjour,
 
Cela ne me semple bas un "bug" puisque ce comportement est précisément décrit dans la documentation de l'API (SimpleDateFormat.parse()) :
 

Parses text from the beginning of the given string to produce a date. The method may not use the entire text of the given string.  
See the parse(String, ParsePosition) method for more information on date parsing.


 
Es-tu allé voir parse(String, ParsePosition) pour creuser ?
 
Nicolas

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed