Tabla de contenido
Java fechaVerificación de validez/existencia Calendario.setLenient()
JavaenVerificación de validez/existencia de fechaEste es un programa de muestra que hace esto.
Comprueba si la cadena de fecha especificada (aaaa/MM/dd o aaaa-MM-dd) existe en el calendario.
java.text.DateFormatclasesetLeniente()Al especificar false, el análisis de fechas se puede realizar de forma estricta. (*La clase DateFormat es internasetLenient() en la clase java.util.Calendaresta llamando. )
Este método de verificación aprovecha el hecho de que si llama al método parse() con una fecha no válida o inexistente, se producirá una excepción ParseException.
programa de muestra
/** * Realiza una verificación de validez de fecha. * Devuelve si la cadena de fecha especificada (aaaa/MM/dd o aaaa-MM-dd) * existe en el calendario. * @param strDate Cadena para verificar * @return true si la fecha existe */ public static boolean checkDate(String strDate) { if (strDate == null || strDate.length() != 10) { throw new IllegalArgumentException ( "El argumento string ["+ strDate +"]" + "no es válido."); } strDate = strDate.replace('-', '/'); DateFormat format = DateFormat.getDateInstance(); // Establece si se debe realizar una fecha estricta /análisis del tiempo. format.setLenient(false); prueba { format.parse(strDate); devuelve verdadero; } captura (Excepción e) { devuelve falso; } }
Resultado de la ejecución
◆Ejemplo de ejecución
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/31/02")); }
◆Resultado de salida
verdadero falso falso