Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1565 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Valider le format d'une date ? Bug avec SimpleDateFormat ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] Valider le format d'une date ? Bug avec SimpleDateFormat ?

n°351830
Esteb@n
Posté le 03-04-2003 à 17:00:04  profilanswer
 

Je voudrais valider le format d'une date en java, mais ca ne fonctionne pas vraiment, voilà comment je fais :
 
format = new SimpleDateFormat("dd/MM/yyyy" );
format.setLenient(false);
format.parse(date);
 
le probleme c'est que 21/01/200a me retourne vrai  :(

mood
Publicité
Posté le 03-04-2003 à 17:00:04  profilanswer
 

n°351859
bobuse
Posté le 03-04-2003 à 17:19:59  profilanswer
 

Esteb@n a écrit :

Je voudrais valider le format d'une date en java, mais ca ne fonctionne pas vraiment, voilà comment je fais :
 
format = new SimpleDateFormat("dd/MM/yyyy" );
format.setLenient(false);
format.parse(date);
 
le probleme c'est que 21/01/200a me retourne vrai  :(


heu format.parse(...) ca renvoie pas un objet Date plutot qu'un boolean :heink:

n°351860
Esteb@n
Posté le 03-04-2003 à 17:22:08  profilanswer
 

oui mais ca declenche une erreur si le format n'est pas correcte (et mon code est dans un try catch).
 
Ca marche avec "toto" mais pas avec "01/01/20aa"

n°351864
bobuse
Posté le 03-04-2003 à 17:28:17  profilanswer
 

Esteb@n a écrit :

oui mais ca declenche une erreur si le format n'est pas correcte (et mon code est dans un try catch).
 
Ca marche avec "toto" mais pas avec "01/01/20aa"  


arf ok bizarre.
 
et ca te met quoi dans ton objet Date resultant ?


Message édité par bobuse le 03-04-2003 à 17:28:32
n°351866
benou
Posté le 03-04-2003 à 17:29:49  profilanswer
 

Code :
  1. package test;
  2. import java.text.*;
  3. import java.util.*;
  4. public class TestDateFormat {
  5. public static void main (String[] args) throws Exception {
  6.  ParsePosition parsePos = new ParsePosition(0);
  7.  DateFormat format = new SimpleDateFormat("dd/MM/yyyy" );
  8.  String textDate = "21/01/200a";
  9.  Date date = format.parse(textDate, parsePos);
  10.  if (textDate.length() >  parsePos.getIndex()) {
  11.   System.out.println("Erreur !" );
  12.  } else {
  13.   System.out.println("date = " + date);
  14.  }
  15. }
  16. }


 
voilà. Si tu veux faire ca bien, tu te redéfinies ta propre SimpleDateFormat qui étend java.text.SimpleDateFormat et qui balance une ParseException quand le ParsePosition est pas en fin de chaine.

n°351874
bobuse
Posté le 03-04-2003 à 17:34:46  profilanswer
 

ha ok en fait quand il parsait 20aa, il interprete année = (19)20, et le reste "on s'en fout", non ?

n°351880
benou
Posté le 03-04-2003 à 17:39:03  profilanswer
 

bobuse a écrit :

ha ok en fait quand il parsait 20aa, il interprete année = (19)20, et le reste "on s'en fout", non ?


nan, c'était l'année 20, et le reste il le parse pas. Et puisque la date est valide, il ne généère pas de ParseException.
 
Il faut utiliser le ParsePosition pour voir il s'est arrêté ... Ca permet d'enchainer des parsing dans une même chaine.

n°351910
Esteb@n
Posté le 03-04-2003 à 17:59:40  profilanswer
 

Niquel merci bcp :) Sinon j'allais partir dans des substring et tout ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] Valider le format d'une date ? Bug avec SimpleDateFormat ?

 

Sujets relatifs
[JAVA] Problème de conception[PHP] + [POSTGRES] Date courante
[Java + Linux] Il me manque des fichiers :([PHP] Valider un formulaire par une image !
[Java] Afficher le contenu d'un fichier texte dans une fenêtre ?[shell]obtenir la date -1 (reconvertit en probleme de awk ;) )
[PHP] probleme avec la fonction date()Division par zéro en Java, exception non catchée ?
Comment faire pour ecrire dans la base mysql la date a la française ?Programme Java (niveau Licence Info)
Plus de sujets relatifs à : [Java] Valider le format d'une date ? Bug avec SimpleDateFormat ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR