sommario
Java dataControllo di validità/esistenza Calendar.setLenient()
JavaInControllo validità/esistenza della dataQuesto è un programma di esempio che fa questo.
Controlla se la stringa della data specificata (aaaa/MM/gg o aaaa-MM-gg) esiste nel calendario.
java.text.DateFormatclassesetLenient()Specificando false, l'analisi della data può essere eseguita in modo rigoroso. (*La classe DateFormat è internamentesetLenient() nella classe java.util.Calendarsta chiamando. )
Questo metodo di controllo sfrutta il fatto che se chiami il metodo parse() con una data non valida o inesistente, si verificherà una ParseException.
programma di esempio
/** * Esegue un controllo di validità della data. * Restituisce se la stringa della data specificata (aaaa/MM/gg o aaaa-MM-gg) * esiste nel calendario. * @param strDate Stringa da verificare * @return true se la data esiste */ public static boolean checkDate(String strDate) { if (strDate == null || strDate.length() != 10) { lancia new IllegalArgumentException ( "L'argomento string ["+ strDate +"]" + "non è valido."); } strDate = strDate.replace('-', '/'); DateFormat format = DateFormat.getDateInstance(); // Imposta se eseguire la data rigorosa /analisi del tempo. format.setLenient(false); try { format.parse(strDate); return true; } catch (Exception e) { return false; } }
Risultato dell'esecuzione
◆Esempio di esecuzione
public static void main(String[] args) { System.out.println(checkDate("2007-01-01")); System.out.println(checkDate("2007/02/31")); System.out .println(checkDate("aaaa/02/31")); }
◆Risultato dell'output
vero falso falso