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.