Para convertir una fecha desde una cadena no siempre es una tarea tan sencilla ya que no hay un método directo que pueda consumir la cadena y me lo interprete en Java, mas si por ejemplo tenemos el formato que usamos aquí en México (dd-MM-yyyy), y muchas veces buscamos en las clases Calendar o Date en busca de una solución. En este caso usaremos una clase SimpleDateFormat para poder parsear (interpretarla correctamente para que se adapte a la clase) en un objeto de tipo Date.
Supongamos que tenemos una fecha en formato de dias-mes-año, vamos a sumarle 30 días naturales, lo primero que tendríamos que hacer es import la librería necesaria
//estas dos son las que se necesitan para la conversion string-date import java.text.ParseException; import java.text.SimpleDateFormat; //Estas son para complementar el ejercicio import java.util.Calendar; import java.util.Date;
Después declaramos el objeto SimpleDateFormat que es practicamente quien nos dara la traducción.
// la cadena que pasamos como parametro sera el formato en el que vamos recibir los datos // en esta clase la "m" minuscula corresponde a los minutos y la "M" mayuscula al nombre SimpleDateFormat parser = new SimpleDateFormat("dd-MM-yyyy");
Cuando vayamos a parsear nos pide que hay una Excepción por lo que nos pedirá que manejemos el problema y lo hacemos mediante un Try y Catch.
try { Date fecha = parser.parse(cadenaConFecha); // <- Aqui pedira un manejo de excepciones } catch (ParseException ex) { System.out.println(ex.toString()); }
Por ultimo utilizaremos la clase Calendar para aumentarle los 30 dias y usaremos el mismo SimpleDateFormat para imprimir con el mismo formato
Calendar cal = Calendar.getInstance(); cal.setTime(fecha); cal.add(Calendar.DAY_OF_YEAR, 30);
Aquí les dejo el ejemplo completo
package pruebajava; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * * @author coby */ public class PruebaJava { /** * @param args the command line arguments */ public static void main(String[] args) { String fechaCadena = "12-12-2010"; SimpleDateFormat parser = new SimpleDateFormat("dd-MM-yyyy"); try { Date fecha = parser.parse(fechaCadena); Calendar cal = Calendar.getInstance(); cal.setTime(fecha); cal.add(Calendar.DAY_OF_YEAR, 30); System.out.println("La fecha es " + parser.format(cal.getTime())); } catch (ParseException ex) { System.out.println(ex.toString()); } } }
Espero les haya servido
No hay comentarios:
Publicar un comentario