jueves, 18 de septiembre de 2008

Fechas y Calendarios en Java

Centro mi objetivo en construir un widget que nos sirva de calendario para mostrar y elegir fechas con JavaFX. El funcionamiento del calendario es el usual. Se muestran los días del mes en que se está, los días de la semana, el mes y el año seleccionado y la posibilidad de navegar por distintos meses y años con dos botones. Cuando se navega se debe obtener un nuevo calendario mensual actualizado. El día de hoy debe estar marcado. El widget devuelve el día seleccionado, por defecto el día de hoy.

JavaFX no tiene ninguna utilidad propia para el manejo de fechas y calendarios. He visto algunos calendarios de ejemplo realizados en swing más o menos correctos. Sabía que la forma en la que se utilizan fechas en Java es con una clase que guarda milisegundos desde el año 1970. Buscando más referencias encuentro java.util.Date que ya no está en uso y las actuales java.util.Calendar y java.util.GregorianCalendar.

Mientras que con Date se necesita formatear la fecha obtenida con simpleDateFormat o DateFormat, Calendar tiene métodos propios para gestionar el formateo de strings con sus fechas/tiempos.

En concreto me interesan dos métodos de la clase Calendar, .set() que establece la hora y .getTime() que formatea la salida a un string. Con estas dos ya podemos construirnos nuestro po-gramita.