jueves, 22 de marzo de 2012

String a Date (Fecha) en Java





Buenas a tod@s!

Con esta entrada os quiero enseñar como se puede paar de String a date (fecha). ¿Para qué lo podemos necesitar? El ejemplo que más se me viene a la cabeza y por el cual tuve que investigar y por lo tanto puede que vosotros también es cuando cogía datos de tipo datetime o smalldatetime en sql server y lo recogía como string en java y luego quería tratar con él como si fuera de formato fecha.

Normalmente cualquier SGBD tendra un tipo de datos datetime, date o smalldatetime.

El tipo datetime suele ser así: "12/08/2012 12:51:12" si esta almacenado en formato local español.


Bueno en mi programa ejemplo voy a aplicarlo directamente sobre un String, pero como ya he dicho antes lo cogeríamos por ejemplo de una Base de Datos y lo almacenaríamos como string, con lo cual es lo mismo.

El código sería el siguiente:


import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class principal {

public static void main(String[] args) {
String fecha = "12/08/2012 12:51:12";
Date d = null;
/* FORMATOS EN EL CUAL QUEREMOS LA FECHA EN
EN ESTE CASO DIA / MES / AÑO */
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
try {
//parseamos string a tipo date
d = sdf.parse(fecha);
} catch (ParseException e) {
e.printStackTrace();
}

//ALGUNOS TIPOS DE FORMATOS
DateFormat dfDateShort = DateFormat.getDateInstance(DateFormat.SHORT);
System.out.println(dfDateShort.format(d));
//FORMATO MEDIO
DateFormat dfDateMedium = DateFormat.getDateInstance(DateFormat.MEDIUM);
System.out.println(dfDateMedium.format(d));
//FORMATO NORMAL
DateFormat dfDefault = DateFormat.getInstance();
System.out.println(dfDefault.format(d));
}

}


Ese es el pequeño código... Hay muchos más formatos, para verlos todos solamente necesitaremos por DateFormat.#Estilo_que_queramos, ya sea Long, milisegundos, decadas, short...

Espero que os haya servido de ayuda y cualquier duda o comentario nada más tenéis que postearlo e intentaré ayudaros.

¡Un saludo!