Crear una fecha en Java desde un String
Anuncio:
Es habitual trabajar con Strings para manejar fechas. En esta ocasión, vamos a ver cómo crear una fecha Timestamp o Date en Java a partir de un string con formato YYYYMMDDMMSS
Nos ayudaremos de la clase Calendar, ya que como sabes, algunos métodos de la clase Date están deprecados.
Partimos de la base de que ya tenemos el valor en un String y creado un objeto de tipo Calendar
// Fecha a parsear
String miFecha = "20160125143025";
// Objeto Calendar
Calendar fechaCalendar = Calendar.getInstance();
A continuación vamos seteando año, mes, dia, hora y segundos. Empezamos con el año.
fechaCalendar.set(Calendar.YEAR, Integer.valueOf(miFecha.substring(0, 4)));
Continuamos con el mes:
fechaCalendar.set(Calendar.MONTH, Integer.valueOf(miFecha.substring(4, 6)) - 1);
Hacemos lo mismo con el día:
fechaCalendar.set(Calendar.DAY_OF_MONTH, Integer.valueOf(miFecha.substring(6, 8)));
Para la hora, usamos HOUR_OF_DAY para que lo tome en formato 24 horas, en caso contrario usaremos HOUR:
fechaCalendar.set(Calendar.HOUR_OF_DAY, Integer.valueOf(miFecha.substring(8, 10)));
Minutos:
fechaCalendar.set(Calendar.MINUTE, Integer.valueOf(miFecha.substring(10, 12)));
Segundos:
fechaCalendar.set(Calendar.SECOND, Integer.valueOf(miFecha.substring(12, 14)));
Y por último ya podemos crear nuestro Timestamp o Date como sigue:
// Timestamp Timestamp fechaTimestamp = new Timestamp(fechaCalendar.getTimeInMillis()); // Date Date fechaDate = new Date(fechaCalendar.getTimeInMillis());
Espero que te haya sido de utilidad.