Crear una fecha en Java desde un String

Antonio Galisteo

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.

Publicado el 01-02-2017

Compartelo!

Deja un comentario

Comentanos

*

Ir arriba de la pagina