Fechas validas y java.util.Date

Pues leyendo el Javadoc de la clase java.util.Date, me encontre la sorpresa de que uno puede crear fechas “invalidas”, por ejemplo Diciembre 32. Para bien o para mal, cuando se crea el objecto Date (usando DateFormat por ejemplo) en vez de generar una excepción, lo que hace Java con Diciembre 32, es convertirlo en Enero 1. Puede que en algunos casos, esto sirva de mucho, y evite un dolor de cabeza, al hacer esta conversión de manera automática. EL problema se da cuando ocupamos validad que la fecha ingresada sea válida en todos los sentidos. Me encontre por ahi un codigo que nos ayudaria a resolver el problema, la verdad la solución es bastante sencilla.

     public Date getDate() {
        // Fechas serian de la forma 20091231
        DateFormat formatter = new SimpleDateFormat("yyyyMMdd");

        Date myDate = formatter.parse("20091232");

        // myDate ahora seria 2010-01-01, al compararla con la fecha original 
        // nos damos cuenta que vario, es decir ocupo ajuste. Podemos decir 
        // que la fecha ingresada no es valida y tirar una excepción
        if (! formatter.format(myDate).equals("20091232")){
            throw new ParseException("Date is invalid",0);
        }
        return myDate;

Esta es una manera ingeniosa de resolver este problema. Si tienen otras soluciones, agradeceria que las agregaran en sus comentarios. -fr4gus