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

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Savoir si une date est valide

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] Savoir si une date est valide

n°1613767
Giz
Posté le 21-09-2007 à 11:34:55  profilanswer
 

Voici le code suivant :
 

Code :
  1. SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd" );
  2.  try {
  3.   df.parse(20080230);
  4. }
  5. catch(ParseException ex){...}


 
Le format est bon, mais la date n'existe pas ! Comment savoir si cette date est valide ? [:petrus75].
 
Merci.


---------------
Asus P5Q Pro | C2D E8400 3GHz@4GHz + Noctua NH-C12P | 2x2Go Patriot Extreme PC-8500 | GeForce GTX 460@Stock 1Go GLH | Crucial SSD M4 64Go Sata3
mood
Publicité
Posté le 21-09-2007 à 11:34:55  profilanswer
 

n°1613776
Taz
bisounours-codeur
Posté le 21-09-2007 à 11:51:05  profilanswer
 

setLenient ?

n°1613778
Taz
bisounours-codeur
Posté le 21-09-2007 à 11:52:33  profilanswer
 

d'un autre côté, je me dis qu'il faut associer une Date à un Calendar pour la valider, donc autant prendre une instance de GregorianCalendar et faire un setTime ?


Message édité par Taz le 21-09-2007 à 11:53:11
n°1613807
Giz
Posté le 21-09-2007 à 13:10:29  profilanswer
 

C'est bon j'ai trouvé ! Faut utiliser des java.sql.Date en fait :
 
1) Créer un java.sql.Date à partir de la string saisie
2) Faire un toString() sur le java.sql.Date  
3) comparer le toString() avec la string saisie. Si egales OK sinon date invalide.
 
Tout simple en fait ;).


---------------
Asus P5Q Pro | C2D E8400 3GHz@4GHz + Noctua NH-C12P | 2x2Go Patriot Extreme PC-8500 | GeForce GTX 460@Stock 1Go GLH | Crucial SSD M4 64Go Sata3
n°1613809
moustik510
Enfin en travaux !
Posté le 21-09-2007 à 13:18:46  profilanswer
 

Giz a écrit :

C'est bon j'ai trouvé ! Faut utiliser des java.sql.Date en fait :
 
1) Créer un java.sql.Date à partir de la string saisie
2) Faire un toString() sur le java.sql.Date  
3) comparer le toString() avec la string saisie. Si egales OK sinon date invalide.
 
Tout simple en fait ;).


Oui car si tu saisies 20080230 ça devient 20080301 automatiquement non ?

n°1613818
Giz
Posté le 21-09-2007 à 13:48:04  profilanswer
 

Oui :jap:


---------------
Asus P5Q Pro | C2D E8400 3GHz@4GHz + Noctua NH-C12P | 2x2Go Patriot Extreme PC-8500 | GeForce GTX 460@Stock 1Go GLH | Crucial SSD M4 64Go Sata3
n°1614175
Nicolas_75
Posté le 23-09-2007 à 05:24:10  profilanswer
 

Bonjour,
 
Même si cela fonctionne, il ne semble pas très "naturel" de passer par des dates SQL pour résoudre ce problème purement Java.
 
En suivant l'idée de Taz...
 

Code :
  1. // appeler ce fichier Test.java
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. public class Test {
  5.     public static void main(String[] args) {
  6.         String s = "20070229"; // 29 février 2007 !
  7.         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd" );
  8.         dateFormat.setLenient(false);
  9.         java.util.Date date = null;
  10.         try {
  11.             date = dateFormat.parse(s);
  12.         } catch (ParseException ex) {
  13.             // la chaîne ne correspond pas à une date valide
  14.             ex.printStackTrace();
  15.         }
  16.         // tout va bien, on imprime :
  17.         System.out.println(date);
  18.     }
  19. }


 
Nicolas


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

  [Java] Savoir si une date est valide

 

Sujets relatifs
[JAVA] Construction d'un BMP par pixelCreation de Méthodes java a la volée
Les types d'exception en Java ?Exception java.lang.reflect.InvocationTargetException RenderedImage
Charge de travail d'une migration VB vers VB.NET / C# / JAVAChamp date dans sous-formulaire
[JAVA] Manipuler OpenOffice à partir de Java ?fonction date VBA
[résolu] date et VB[JAVA] fusionner /concaténer des documents WORD
Plus de sujets relatifs à : [Java] Savoir si une date est valide


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