Diferencia entre revisiones de «SimpleDateFormat»

De ChuWiki
Saltar a: navegación, buscar
m
m
Línea 1: Línea 1:
 +
 +
== Para qué sirve ''SimpleDateFormat'' ==
 +
 
La clase ''SimpleDateFormat'' nos ayuda a mostrar las fechas en el formato que queramos o a reconstruirlas a partir de una cadena de texto.
 
La clase ''SimpleDateFormat'' nos ayuda a mostrar las fechas en el formato que queramos o a reconstruirlas a partir de una cadena de texto.
 +
 +
 +
== Convertir un ''Date'' a ''String'' ==
  
 
Un uso simple de ''SimpleDateFormat'' para escribir una fecha en pantalla puede ser este
 
Un uso simple de ''SimpleDateFormat'' para escribir una fecha en pantalla puede ser este
Línea 9: Línea 15:
 
  // Esto muestra la fecha actual en pantalla, más o menos así 26/10/2006
 
  // Esto muestra la fecha actual en pantalla, más o menos así 26/10/2006
 
  System.out.println(formateador.format(new Date()));
 
  System.out.println(formateador.format(new Date()));
 +
 +
Por supuesto, podemos jugar con la máscara y ponerla a nuestro gusto, dentro de las posibilidades que nos ofrece la API de ''SimpleDateFormat''.
 +
 +
SimpleDateFormat formateador = new SimpleDateFormat("'Hoy es' EEEEEEEEE dd 'de' MMMMM 'de' yyyy");
 +
SimpleDateFormat formatea = new SimpleDateFormat("dd/MM/yyyy");
 +
SimpleDateFormat forma    = new SimpleDateFormat("'Ingresaste' EEEEEEEEE dd 'de' MMMMM 'de' yyyy");
 +
DateFormat formatoFecha=DateFormat.getDateInstance(DateFormat.FULL);
  
 
En la [http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html API de ''SimpleDateFormat''] podemos ver todas las opciones para la máscara de fecha y hora.
 
En la [http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html API de ''SimpleDateFormat''] podemos ver todas las opciones para la máscara de fecha y hora.
 +
 +
 +
== Obtener un ''Date'' a partir de un ''String'' ==
  
 
Para reconstruir una fecha a partir de la cadena de texto, podemos usar la misma clase ''SimpleDateFormat''. Por ejemplo, si un usuario escribe una fecha con este formato en un '''JTextField''', podemos leerla así
 
Para reconstruir una fecha a partir de la cadena de texto, podemos usar la misma clase ''SimpleDateFormat''. Por ejemplo, si un usuario escribe una fecha con este formato en un '''JTextField''', podemos leerla así
Línea 28: Línea 44:
 
  }
 
  }
  
Por supuesto, podemos jugar con la máscara y ponerla a nuestro gusto, dentro de las posibilidades que nos ofrece la API de ''SimpleDateFormat''.
+
Una cosa interesante es que a la hora de convertir un ''String'' a ''Date'', la clase ''SimpleDateFormat'' es "indulgente", es decir, si metemos mal el ''String'', trata de corregirlo. Por ejemplo, si introducimos una fecha "32 de Enero", no obtendremos error, sino que se arreglará y nos devolverá un Date correspondiente a "1 de Febrero". Podemos eliminar este comportamiento con el método ''setLenient(false)'';
  
  SimpleDateFormat formateador = new SimpleDateFormat("'Hoy es' EEEEEEEEE dd 'de' MMMMM 'de' yyyy");
+
  SimpleDateFormat formateador = new SimpleDateFormat("dd/MM/yyyy");
  SimpleDateFormat formatea = new SimpleDateFormat("dd/MM/yyyy");
+
  formateador.setLenient(false);
SimpleDateFormat forma   = new SimpleDateFormat("'Ingresaste' EEEEEEEEE dd 'de' MMMMM 'de' yyyy");
+
 
DateFormat formatoFecha=DateFormat.getDateInstance(DateFormat.FULL);
+
de esta forma, el "32 de Enero" dará un error.
 +
 
 +
 
 +
== Enlaces externos ==
  
Un ejemplo en el foro del Jefe: [http://foro.chuidiang.com/index.php?topic=613.msg2076#msg2076 Ejemplo de SimpleDateFormat]
+
*Un ejemplo en el foro del Jefe: [http://foro.chuidiang.com/index.php?topic=613.msg2076#msg2076 Ejemplo de SimpleDateFormat]
  
 
[[Categoría:Java:Básico]]
 
[[Categoría:Java:Básico]]

Revisión del 18:15 31 ene 2009

Para qué sirve SimpleDateFormat

La clase SimpleDateFormat nos ayuda a mostrar las fechas en el formato que queramos o a reconstruirlas a partir de una cadena de texto.


Convertir un Date a String

Un uso simple de SimpleDateFormat para escribir una fecha en pantalla puede ser este

import java.text.SimpleDateFormat;
...
SimpleDateFormat formateador = new SimpleDateFormat("dd/MM/yyyy");

// Esto muestra la fecha actual en pantalla, más o menos así 26/10/2006
System.out.println(formateador.format(new Date()));

Por supuesto, podemos jugar con la máscara y ponerla a nuestro gusto, dentro de las posibilidades que nos ofrece la API de SimpleDateFormat.

SimpleDateFormat formateador = new SimpleDateFormat("'Hoy es' EEEEEEEEE dd 'de' MMMMM 'de' yyyy");
SimpleDateFormat formatea = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat forma    = new SimpleDateFormat("'Ingresaste' EEEEEEEEE dd 'de' MMMMM 'de' yyyy");
DateFormat formatoFecha=DateFormat.getDateInstance(DateFormat.FULL);

En la API de SimpleDateFormat podemos ver todas las opciones para la máscara de fecha y hora.


Obtener un Date a partir de un String

Para reconstruir una fecha a partir de la cadena de texto, podemos usar la misma clase SimpleDateFormat. Por ejemplo, si un usuario escribe una fecha con este formato en un JTextField, podemos leerla así

import java.text.SimpleDateFormat;
...
JTextField textField = new JTextField();
...
SimpleDateFormat formateador = new SimpleDateFormat("dd/MM/yyyy");
try
{
   Date fecha = formateador.parse(textField.getText());
}
catch (ParseException e)
{
   // Error, la cadena de texto no se puede convertir en fecha.
}

Una cosa interesante es que a la hora de convertir un String a Date, la clase SimpleDateFormat es "indulgente", es decir, si metemos mal el String, trata de corregirlo. Por ejemplo, si introducimos una fecha "32 de Enero", no obtendremos error, sino que se arreglará y nos devolverá un Date correspondiente a "1 de Febrero". Podemos eliminar este comportamiento con el método setLenient(false);

SimpleDateFormat formateador = new SimpleDateFormat("dd/MM/yyyy");
formateador.setLenient(false);

de esta forma, el "32 de Enero" dará un error.


Enlaces externos