Problema con variables tipo date
Saludos a todos, necesito definir una variable tipo date y almacenar una fecha, la cula cambia durante el proceso, por ejemplo en un momento debo almacenar 23/05/2006 y en otro 13/08/2004. Gracias por su ayuda.
Hola,...
Te pongo el código...
String fecha="23/05/2006";
String fecha2= "13/08/2004";
String patron="dd/MM/yyy";
SimpleDateFormat sdf= new SimpleDateFormat(patron);
Date d= sdf.parse(fecha, new ParsePosition(0));
System.out.println("Fecha:"+d);
Como se repite el patrón en ambas fechas, sólo hay que hacer...
d= sdf.parse(fecha2, new ParsePosition(0));
System.out.println("Fecha2:"+d);
Si el formato de la segunda fecha es otro, por ejemplo 2004-08-13 basta con redefinirlo...
fecha2="2004-08-13";
String patron2="yyyy-MM-dd";
sdf.applyPattern(patron2);
d= sdf.parse(fecha2, new ParsePosition(0));
System.out.println("Fecha con formato diferente:"+d);
Si quieres cambiar el formato de la fecha basta con definir un nuevo patron sobre el formateador sdf y aplicarlo...
String patron2="MM*yyyy*dd";
sdf.applyPattern(patron2);
StringBuffer b = sdf.format(fecha, new StringBuffer(), new FieldPosition(0) );
System.out.println(b.toString());
Espero que te sirva. Un saludo.
Te pongo el código...
String fecha="23/05/2006";
String fecha2= "13/08/2004";
String patron="dd/MM/yyy";
SimpleDateFormat sdf= new SimpleDateFormat(patron);
Date d= sdf.parse(fecha, new ParsePosition(0));
System.out.println("Fecha:"+d);
Como se repite el patrón en ambas fechas, sólo hay que hacer...
d= sdf.parse(fecha2, new ParsePosition(0));
System.out.println("Fecha2:"+d);
Si el formato de la segunda fecha es otro, por ejemplo 2004-08-13 basta con redefinirlo...
fecha2="2004-08-13";
String patron2="yyyy-MM-dd";
sdf.applyPattern(patron2);
d= sdf.parse(fecha2, new ParsePosition(0));
System.out.println("Fecha con formato diferente:"+d);
Si quieres cambiar el formato de la fecha basta con definir un nuevo patron sobre el formateador sdf y aplicarlo...
String patron2="MM*yyyy*dd";
sdf.applyPattern(patron2);
StringBuffer b = sdf.format(fecha, new StringBuffer(), new FieldPosition(0) );
System.out.println(b.toString());
Espero que te sirva. Un saludo.
Bueno, esa es una solución "poco" elegante, más bien debería hacerse con la clase Calendar, algo así:
Calendar cal = Calendar.getInstance();
cal.set(2006,4,23);
//Primera asignación
Date fecha = cal.getTime();
//segunda
cal.set(2004,08,13);
fecha = cal.getTime();
Si quieres saber más visita estos artículos:
http://www.geocities.com/javacolombia/articulos/art0002.htm
http://www.geocities.com/javacolombia/articulos/art0002-2.htm
Calendar cal = Calendar.getInstance();
cal.set(2006,4,23);
//Primera asignación
Date fecha = cal.getTime();
//segunda
cal.set(2004,08,13);
fecha = cal.getTime();
Si quieres saber más visita estos artículos:
http://www.geocities.com/javacolombia/articulos/art0002.htm
http://www.geocities.com/javacolombia/articulos/art0002-2.htm