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