Publié le 22/09/2010
Auteur axel
Réseaux sociaux
0 partages
0 tweets
0 plus
2 commentaires

Verifier la validite d'une date

Les dates utilisées dans nos applications sont saisies dans un formulaire, calculées à partir d'un timestamp ou encore stockées dans une base de donnée. Avant d'afficher une date à l'utilisateur ou de l'enregistrer dans une table, il est préférable de vérifier le format.

Tester le format d'une date

Souvent les dates sont stockées sous forme d'un string. Avant de se lancer dans un cast, la fonction DateChecker.isValid vérifier si la date correspond à un masque. Dans cet exemple, le format de la date est fixé à : dd/MM/yyyy. Testons la validité des dates 21/09/2010 et 21/092010.
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
 
/**
 * Vérifier la validité d'une date
 */
public class DateChecker {
 
    public static boolean isValid(String strdate, String format) {
        SimpleDateFormat df = new SimpleDateFormat(format);
        try {
            Date date = df.parse(strdate);
            return true;
        } catch (ParseException ex) {
            Logger.getLogger(DateChecker.class.getName()).log(Level.SEVERE, null, ex);
            return false;
        }
    }
 
    public static void main(String[] args) {
        String dtFormat = "dd/MM/yyyy";
        String date1 = "21/09/2010";
        String date2 = "21/092010";
 
        //Test 1
        if (DateChecker.isValid(date1, dtFormat)) {
            System.out.println("Le format de " + date1 + " est correcte");
        } else {
            System.out.println(date1 + " n'est pas une date valide");
        }
 
        //Test2
        if (DateChecker.isValid(date2, dtFormat)) {
            System.out.println("Le format de " + date2 + " est correcte");
        } else {
            System.out.println(date2 + " n'est pas une date valide");
        }
    }
}

Un principe en développement informatique est de toujours vérifier le format des données avant de les utiliser. En ce qui concerne les dates, la class DateChecker permet de valider le format d'une date et d'éviter les dates converties par la suite en valeur nulle.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.
avatar eldiablo

Publié par eldiablo

le 04/12/2011 à 14:49:35

Malheureusement, ce code n'est pas correct.
Cette classe accepte des dates comme : "31/00/2011"

avatar eldiablo

Publié par eldiablo

le 04/12/2011 à 14:55:11

Après recherches, il manquait simplement une ligne à cette classe et à la mienne. Il suffit d'ajouter
df.setLenient(false);
juste après
SimpleDateFormat df = new SimpleDateFormat(format);

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - sources
Mise a jour
22/09/2010
Visualisation
vu 5734 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Outsourcing dans news

Le PageRank n'a plus une reelle importance a mon humble avis mais bcp de mes clients continue a juger de la qualite de ma prestation en referencement avec la barre verte!

Publié par titi dans tuto

test de ce truc! eh ben exigeant en plus

Publié par pgts09 dans tuto

Bonjour,
Felicitations pour ce tuto simple, et qui semble repondre exactement ce que je cherchais !
Malheureusement je n'arrive pas faire fonctionner, voici ce que donne mon essai : J'ai pourt...

Publié par ric dans CMS

c\'est la première fois que j\'utilise ce logiciel

Publié par khaoula dans java

s' il vous plait j'ai un projet de fin d'etude et je veux integrer une carte google maps dans une interface avec java et toujours j'aurais des problemes et merci de votre reponse