Obtener la fecha en un JSP

16/Ene/2008 Java , , , , , , , , , , , , 8 Comentarios

Una de las cosas más frecuentes de las páginas dinámicas es que te muestren la fecha actual. Algunas incluso te muestran un saludo dependiendo del día de la semana o el mes en el que te encuentres. Todo un derroche de ingenio 😉

En las primeras versiones el manejo de fechas pasaba exclusivamente por el uso de la clase java.util.Date, pero a partir de la versión JDK 1.1 fueron añadidas nuevas funcionalidades en otras clases de apoyo como Calendar, TimeZone, Locale y DateFormat y descargando de funcionalidad a la clase Date, si bien, sigue siendo la clase base para el uso de fechas.

Para marcar un limite entre las dos clases podríamos decir que Date representa un momento especifico del tiempo en milisegundos, mientras que Calendar nos permite obtener número enteros que especifican el dia, mes, año, hora,... de dicha fecha. Es decir, lo que eran los antiguos metodos de .getDay(), .getMonth(),....

Para llevar a buen puerto nuestro ejemplo, una página JSP que nos muestre la fecha y hora, lo primero que vamos a realizar es obtener una instancia de la clase Calendar mediante el método .getInstance(). Esto nos devolverá un calendario con los valores por defecto establecidos en nuestra maquina en cuanto a hora y formato.

Una vez que tengo la instancia del calendario me bastara con ir obteniendo los valores que me interesen mediante el método get(). Dicho método admite como parámetros una serie de constantes definidas en la clase Calendar que representar el día, mes, año,... Estas constantes son Calendar.DATE, Calendar.MONTH, Calendar.YEAR, ....

Ademas tenemos otra serie de constantes que nos permiten saber si la fecha que manejamos es un día u otro, un mes u otro. Estas constantes son Calendar.FRIDAY,Calendar.MONDAY,... para los días, Calendar.JUNE,Calendar.NOVEMBER,... para los meses,...

  1. java.util.Calendar fecha = java.util.Calendar.getInstance();
  2. out.println(fecha.get(java.util.Calendar.DATE) + "/"
  3. + fecha.get(java.util.Calendar.MONTH) + "/"
  4. + fecha.get(java.util.Calendar.YEAR));

Como hemos podido comprobar, mediante la clase Calendar, únicamente podemos mostrar los valores enteros del dia, mes y año. Si queremos mostrar las fechas en otro formato como 18-Nov-2002, 18 de noviembre de 2002,... deberemos de usar un formateador de fechas mediante la clase DateFormat.

A si que los pasos a seguir son: primero obtener una instancia del calendario, como acabamos de ver. Segundo obtener la fecha actual del calendario. Esto lo hacemos mediante el método getTime.

  1. Date fecha = calendario.getTime();

Una vez tenemos la fecha actual deberemos de instanciarnos el formateador. La instancia la obtendremos de la misma forma que obtuvimos la instancia del calendario, mediante un método getInstance().

  1. DateFormat formateador = DateFormar.getInstance();

Este método nos permite pasarle un estilo de formato. Dentro de los estilos tenemos:

  • SHORT, totalmente numérico (18/11/02 O 9:01).
  • MEDIUM, formato largo (18-nov-02 O 9:00:20).
  • LONG, otro formato largo (18 de noviembre de 2002 O 9:02:12 GMT+01:00).
  • FULL, con la especificación completa (lunes 18 de noviembre de 2002 O 09H03' GMT+01:00).

Solo nos quedará volcar toda esta información dentro de la JSP. Para ello las páginas JSP nos ofrecen el objeto out, el cual, mediante su método println, nos permite volcar información a la página.

El código sería el siguiente:

  1. out.println(formateadorFecha.format(date));
  2. out.println(formateadorHora.format(date));

Visualizar el ejemplo | Descargar el código

Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

8 comentarios en “Obtener la fecha en un JSP”

Víctor Cuervo

Víctor Cuervo

@maseo,

Muchas gracias por el aporte. Lo incluiremos en los artículos.

Víctor Cuervo

maseo

hola, muchas gracias por el aporte. me sirvio de mucho. tambien aportar que para anexar la fecha a la base de datos mysql. lo recomendable es anexarlo en este formato año-mes-dia. el codigo seria el siguiente.
java.text.DateFormat formateadorFecha = new java.text.SimpleDateFormat (“yyyy-MM-dd”);

de resto todo excelente.
muchas gracias.

Víctor Cuervo

Salco

Gracias! necesitaba obtener el año actual en JSP

Víctor Cuervo

laura

pinches mamadas que me hacen
a si que si se les antoja ya saben donde comunicarse

Víctor Cuervo

darkchicles

Grax compa 😉

Víctor Cuervo

I.E. Francisco Lopez de Romaña

Como podria comparar 2 fechas y saber cual es mayor y cual es menor?

Víctor Cuervo

Jorge

Quisiera saber de que forma puedo establecer en el formato LONG que la primera letra del día salga con mayúsculas??

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*