Social

martes, 4 de noviembre de 2014

Java: Convertir String a Date

Para convertir un objeto del tipo String a Date debemos definir primero el formato en que usa el String a convertir. Para tal caso existe la clase DateFormat que tiene varias implementaciones pero en este caso la veremos con SimpleDateFormat. Estas clases nos permiten convertir un objeto String a Date usando un formato o sintaxis que se adecua a el String que enviamos.

El siguiente ejemplo muestra varios String los cuales deseamos pasar a fecha:

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringToDate {
public static void main(String[] args){
//Diferentes fechas a parsear
String stringFechaHora = "2014-10-20 20:10:59";
String stringFecha = "20/10/2014";
String stringHora = "10:20:59";
try {
//Se necesita definir un formato para poder cambiar el String a Date
//En este caso buscará en el String año-mes-dia hora:minutos:segundos
DateFormat fechaHora = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date convertido = fechaHora.parse(stringFechaHora);
System.out.println(convertido);
//En este caso buscará en el String dia/mes/año
DateFormat fecha = new SimpleDateFormat("dd/MM/yyyy");
convertido = fecha.parse(stringFecha);
System.out.println(convertido);
//En este caso buscará en el String hora:minutos:segundos
DateFormat hora = new SimpleDateFormat("HH:mm:ss");
convertido = hora.parse(stringHora);
System.out.println(convertido);
//En este caso buscara hora:minutos:segundos en el String "20/10/2014"
//No lo encntrará y será error por lo que nos mandará al catch.
convertido = hora.parse(stringFecha);
System.out.println(convertido);
} catch (ParseException e) {
System.out.println("Error: " + e.getMessage());
}
}
}

El código anterior nos permite parsear el String buscando por los elementos que se definio en el formato. El resultado del código anterior es el siguiente:
Mon Oct 20 20:10:59 CST 2014
Mon Oct 20 00:00:00 CST 2014
Thu Jan 01 10:20:59 CST 1970
Error: Unparseable date: "20/10/2014"

En la siguiente imagen se pueden observar algunos ejemplos de SimpleDateFormat con sus resultados en String.


No hay comentarios :

Publicar un comentario