Utilizar Formatos Predefinidos
La clase
DateFormat permite formatear fechas y horas con estilos predefinidos de una forma sensible a la Localidad,
DateFormat no soporta todas las posibles definiciones de Localidades. Para ver las definiciones de
Locale que reconoce
DateFormat, llamamos al método
getAvailableLocales:
Locale[] locales = DateFormat.getAvailableLocales();
En las siguientes secciones, veremos cómo formatear fechas y horas con la clase
DateFormat. Los ejemplos se han sacado el programa
DateFormatDemo.java.
Fechas
Formatear fechas con la clase
DateFormat es un proceso en dos pasos. Primero se crea un formateador con el método
getDateInstance. Segundo, se llama al método
format, que devuelve un
String que contiene la fecha formateada. En el siguiente ejemplo, hemos formateado la fecha de hoy llamando a estos dos métodos:
Date today;
String dateOut;
DateFormat dateFormatter;
dateFormatter =
DateFormat.getDateInstance(DateFormat.DEFAULT, currentLocale);
today = new Date();
dateOut = dateFormatter.format(today);
System.out.println(dateOut + " " + currentLocale.toString());
Aquí está la salida generada por este código. Observa que los formatos de fechas varían con la Localidad. Como
DateFormat es sensible a la Localidad, tiene cuidado de los detalles de formateo para cada Localidad.
9 avr 98 fr_FR
9.4.1998 de_DE
09-Apr-98 en_US
En el ejemplo de código anterior, hemos específicado el estilo de formato
DEFAULT. Este estilo es sólo uno de los estilos de formato predefinidos que proporciona la clase
DateFormat:
- DEFAULT
- SHORT
- MEDIUM
- LONG
- FULL
La siguiente tabla muestra cómo se formatea cada estilo para las Localidades de U.S. y Francia:
| Estilo | Localidad U.S. | Localidad Francia |
| DEFAULT | 10-Apr-98 | 10 avr 98 |
| SHORT | 4/10/98 | 10/04/98 |
| MEDIUM | 10-Apr-98 | 10 avr 98 |
| LONG | April 10, 1998 | 10 avril 1998 |
| FULL | Friday, April 10, 1998 | vendredi, 10 avril 1998 |
Horas
Los objetos
Date representan tanto fechas como horas. Formatear horas con la clase
DateFormat es similar al formateo de fechas, excepto en que el formateador se crea con el método
getTimeInstance:
DateFormat timeFormatter =
DateFormat.getTimeInstance(DateFormat.DEFAULT, currentLocale);
La siguiente tabla muestra los estilos de formatos predefinidos para las horas en las localidades de U.S. y Alemania:
| Estilo | Localidad U.S. | Localidad Alemania |
| DEFAULT | 3:58:45 PM | 15:58:45 |
| SHORT | 3:58 PM | 15:58 |
| MEDIUM | 3:58:45 PM | 15:58:45 |
| LONG | 3:58:45 PM PDT | 15:58:45 GMT+02:00 |
| FULL | 3:58:45 oclock PM PDT | 15.58 Uhr GMT+02:00 |
Fechas y Horas
Para mostrar la fecha y la hora en la misma
String, se crea el formateador con el método
getDateTimeInstance. El primer parámetro es el estilo de fecha y el segundo es el estilo de la hora. El tercer parámetro es nuestro viejo amigo
Locale. Aquí tienes un ejemplo rápido:
DateFormat formatter;
formatter = DateFormat.getDateTimeInstance(DateFormat.LONG,
DateFormat.LONG,
currentLocale);
Para la localidad de U.S., el formateado de este ejemplo, formateará la fecha y la hora de esta forma:
April 10, 1998 4:05:54 PM PDT
Si el ejemplo del formateador se hubiera creado con la Localidad Francia, el
String devuelto por el método
format sería:
11 avril 1998 01:05:54 GMT+02:00
Ozito