Formato de fechas en Java


La clase SimpleDateFormat

En ocasiones necesitamos mostrar fechas en un cierto formato, para esto podemos utilizar la clase SimpleDateFormat en unos sencillos pasos:

1- Creamos un objeto de tipo SimpleDateFormat y pasamos en el constructor de la clase el patrón deseado. En este caso mostraremos la fecha actual en el formato 23-12-2012 por lo que utilizaré el patrón dd-MM-yyyy


SimpleDateFormat formato = new SimpleDateFormat("dd-MM-yyyy");

2- Creamos un objeto de tipo Date, al crearlo con el constructor por defecto almacena la fecha actual, que es justo lo que necesitamos

Date fecha = new Date();

3- Utilizamos el método  String format(Date date) de la clase SimpleDateFormat, el cual nos devuelve un cadena con la representación de la fecha pasada en el constructor y con el patrón especificado anteriormente en el paso 1. El valor obtenido lo almacenamos en la variable de tipo String fechaActual


String fechaActual =  formato.format(fecha);

4- Por último imprimimos el valor obtenido en pantalla


System.out.println(fechaActual);

En resumen:


SimpleDateFormat formato = new SimpleDateFormat("dd-MM-yyyy");
  
Date fecha = new Date();
  
String fechaActual =  formato.format(fecha);
  
System.out.println(fechaActual);

Otras veces necesitamos trabajar con una fecha que el cliente nos proporcionan en un formato específico. Para esto seguiremos nuevamente unos sencillos pasos:


1- Creamos un objeto de tipo SimpleDateFormat y pasamos en el constructor de la clase el patrón de la fecha proporcionada por el cliente. En este caso asumiremos que la fecha proporcionada tiene el formato yyyy/MM/dd


SimpleDateFormat formato = new SimpleDateFormat("yyyy/MM/dd");

2- Utilizamos el método Date parse(String source) de la clase SimpleDateFormat, el cual nos devuelve un objeto de tipo Date que contiene la fecha pasada en el constructor.En este caso supongamos que el valor de la fecha proporcionada por el cliente es 2012/10/24. A la hora de utilizar este método lo encerraremos dentro de un bloque try-catch ya que así lo demanda la definición del método para capturar cualquier posible excepción


Date fecha = null;
  try {
   fecha = formato.parse("2012/10/24");
  } catch (ParseException e) {

   e.printStackTrace();
  }

3- Teniendo el valor de la fecha almacenado en nuestro objeto de tipo Date podemos darle el uso que necesitemos, en este caso con fines didácticos lo único que haré será imprimir su valor.Para esto utilizamos el método toString() de la clase Date para obtener una cadena con el valor de la fecha y lo almacenamos en la variable fechaProporcionada de tipo String


String fechaProporcionada =  fecha.toString();

4- Por último imprimimos el valor de la fecha


System.out.println(fechaProporcionada);

En resumen:


SimpleDateFormat formato = new SimpleDateFormat("yyyy/MM/dd");
  
  Date fecha = null;
  try {
   fecha = formato.parse("2012/10/24");
  } catch (ParseException e) {
   e.printStackTrace();
  }
  
  String fechaProporcionada =  fecha.toString();
  
  System.out.println(fechaProporcionada);

Otros patrones de fecha

PatrónResultado
"yyyy.MM.dd G 'at' HH:mm:ss z"2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy"Wed, Jul 4, '01
"h:mm a"12:08 PM
"hh 'o''clock' a, zzzz"12 o'clock PM, Pacific Daylight Time
"K:mm a, z"0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa"02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z"Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ"010704120856-0700







Comentarios