Controle du format d'une date en java
Résolu/Fermé
Niels
-
7 mars 2008 à 15:58
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 10 mars 2008 à 21:13
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 10 mars 2008 à 21:13
A voir également:
- Controle du format d'une date en java
- Format epub - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Format dat - Guide
- Telecharger format factory - Télécharger - Conversion & Codecs
7 réponses
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
7 mars 2008 à 16:11
7 mars 2008 à 16:11
Bonjour,
Tu peux suivre cet exemple que j'utilise et qui fonctionne :
Pour controler le format de ta date :
Et pour contrôler s'il s'agit d'une date réelle, je crois que ce code fonctionne (pas certain à vérifier) :
Tu peux suivre cet exemple que j'utilise et qui fonctionne :
Pour controler le format de ta date :
String myDate = "2007-05-26"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); sdf.setLenient(true); Date d = new Date(); try { d = sdf.parse(myDate ); String t = sdf.format(d); if(t.compareTo(myDate) != 0) throw new Exception("MESSAGE ERREUR); } catch (Exception e) { // --- Gestion mauvaise date }
Et pour contrôler s'il s'agit d'une date réelle, je crois que ce code fonctionne (pas certain à vérifier) :
Calendar c = Calendar.getInstance(); String myDate = "2007-95-26"; try{ c.setLenient(false); c.set( Integer.valueOf(getFrom().substring(0,4)).intValue(), Integer.valueOf(getFrom().substring(5,7)).intValue(), Integer.valueOf(getFrom().substring(8,10)).intValue()); c.getTime(); } catch(Exception iAE){ // --- Gestion de date inexistante (ou d'erreur) }
J'ai oublié de préciser, la date je la récupère sous forme de String grâce à la formule suivante :
public String traiter(HttpServletRequest req, HttpServletResponse rep){
...
String date = req.getParameter("date");
...
}
Donc serait-il possible de vérifier si le string récupérer par req.getParameter("date") répond au format yyyy-mm-dd ?
public String traiter(HttpServletRequest req, HttpServletResponse rep){
...
String date = req.getParameter("date");
...
}
Donc serait-il possible de vérifier si le string récupérer par req.getParameter("date") répond au format yyyy-mm-dd ?
Ok, j'ai compris ce que tu voulais dire par "date réelle". Désolé, la journée à été difficile !
Merci encore pour tes solutions que tu me proposes !
Merci encore pour tes solutions que tu me proposes !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
7 mars 2008 à 16:19
7 mars 2008 à 16:19
Une date qui existe / a existée (après 1901 par contre, c'est le seul hic) / existera (pas comme celle que j'ai mis dans la variable myDate)
Utilisateur anonyme
10 mars 2008 à 18:46
10 mars 2008 à 18:46
Salut,
Je me rend compte que j'ai oublie de preciser que l'exception n'est declenchee qu'a l'extraction d'une des donnees
fournie par GregorianCalendar.
Exemples : System.out.println( gc.getTime() ); ou int annee = gc.get(Calendar.YEAR); etc...
------
try
{
GregorianCalendar gc = new GregorianCalendar(p1, p2, p3);
gc.setLenient(false); // sans cette ligne, pas d'exception possible
// (true par defaut)
System.out.println( gc.getTime() ); // "2007-95-26" avec cette date : exception
}
catch (Exception e) {
e.printStackTrace();
----
Dan
Je me rend compte que j'ai oublie de preciser que l'exception n'est declenchee qu'a l'extraction d'une des donnees
fournie par GregorianCalendar.
Exemples : System.out.println( gc.getTime() ); ou int annee = gc.get(Calendar.YEAR); etc...
------
try
{
GregorianCalendar gc = new GregorianCalendar(p1, p2, p3);
gc.setLenient(false); // sans cette ligne, pas d'exception possible
// (true par defaut)
System.out.println( gc.getTime() ); // "2007-95-26" avec cette date : exception
}
catch (Exception e) {
e.printStackTrace();
----
Dan
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
10 mars 2008 à 21:13
10 mars 2008 à 21:13
Donc c'est bien la bonne version que j'ai mis.
C'est bien pour ça que j'ai mis :
De manière à ce qu'une exception soit levée si la date n'est pas bonne. C'est vrai que je n'ai pas précisé qu'il faut gérer les cas d'erreurs en catchant l'exception.
C'est bien pour ça que j'ai mis :
c.getTime();
De manière à ce qu'une exception soit levée si la date n'est pas bonne. C'est vrai que je n'ai pas précisé qu'il faut gérer les cas d'erreurs en catchant l'exception.
8 mars 2008 à 07:38
Avec
----
String unedate = "2007-95-26"; // celle de ton exemple
mano = unedate.substring(0,4);
p1 = Integer.parseInt(mano);
mano = unedate.substring(5,7);
p2 = Integer.parseInt(mano);
mano = unedate.substring(8,10);
p3 = Integer.parseInt(mano);
try
{
GregorianCalendar gc = new GregorianCalendar(p1, p2, p3);
gc.setLenient(false); // sans cette ligne, pas d'exception possible
// (true par defaut)
}
catch (Exception e) {
e.printStackTrace();
----
c'est bon a tous les coups.
Cordialement Dan
10 mars 2008 à 13:07