Java - problema con validacion de fecha¿?

 
Vista:

problema con validacion de fecha¿?

Publicado por krisandres (12 intervenciones) el 09/02/2007 11:59:46
Hola!
Estoy desarrollando una aplicación web y en una de las funciones debo de introducir una fecha. Estoy intentando validar que un usuario introduzca una fecha en un determinado formato : ("dd/MM/yyyy). Utilizo el servidor de Apache Tomcat y me aparece un error en este cuando introduzco la fecha en otro formato diferente a pesar de que la página responde correctamente al error, ya que reenvía al usuario a volver a escribirla en el formato correcto. El error que aparece en el Tomcat para una fecha que se ha introducido mal, por ejemplo 12-02-2007 (el formato es 12/02/2007 ) es

Unparseable date: "12-02-2007" y el fragmento de código es el siguiente.

private String Fecha; //declaracion de fecha como tipo String

public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {

SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");

Date fechaintroducida = null;

try {

fechaintroducida=df.parse(getFecha());

} catch (ParseException e) {

e.printStackTrace();

errors.add("fechaintroducida", new ActionMessage ("error.mal.Fechaintroducida"));

}



if (fechaintroducida == null) {

errors.add("fecha", new ActionMessage ("error.falta.Fecha"));

}

Pues no se... no lo creo pero quiza el error del tomcat sea debido a que la fecha está mal introducida y sea normal... pero bueno muchisimas gracias y espero respuesta!!!!!!!!! Saludos a todos!!! (si no es mucho pedir me gustaría saber también como puedo obtener por separado el dia (dd), mes (MM) y año (yyyy) para poder compararlo a ver si por ejemplo no ha puesto el dia 51 de un mes 40 por ejemplo, GRACIAS ).
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema con validacion de fecha¿?

Publicado por Angel (537 intervenciones) el 09/02/2007 13:15:18
Pues puedes usa substring....
String fecha = getFecha();

String dia = fecha.substring(0,2);
String mes = fecha.substring(3,5);
String ano = fecha.substring(6,10);

Asi obtendras el dia, mes y año....puedes comprobar que vengan en ese orden para saber si la fecha esta bien,,sin tener k producir una excepcion.
Tambien puedes recojer los separadores

String sep1 = fecha.substring(2,3);
String sep2 = fecha.substring(5,6);

Esto es una idea,,te puede valer pasa validar sin producir excepcion y tambien para recojer dia mes año,,y comprobar que sean valores correctos...un saludo....
por cierto..ojo .....que si la cadena que te envian no tiene ese tamaño,,en este caso..10 caracteres,,lanzará una excepción......quizas comprobar antes con fecha.length()==10

Saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar