Clases para manejo de fechas

En las primeras versiones de Java para representar fechas y horas se utilizaba la clase Date del paquete java.util. Aunque todavía se puede utilizar, y hay muchos proyectos corriendo que la usan, actualmente está considerada obsoleta.

La clase Date fue mejorada por el conjunto de clases derivadas de la clase abstracta Calendar, también pertenecientes al paquete java.util.

Con la versión 8 de Java apareció el paquete java.time con las siguientes clases:

  • LocalDate: para representar una fecha.
  • LocalDateTime: para representar un instante en el tiempo (fecha y hora).
  • LocalTime: para representar una hora.

En esta ocasión trabajaremos con la clase LocalDateTime:

llamamos a los métodos estáticos now() y of().

El método now() nos devuelve un nuevo objeto LocalDateTime, que representa la fecha actual (fecha del sistema).

El método of() nos devuelve un nuevo objeto LocalDateTime, que representa la fecha indicada en los argumentos. El método of() se utiliza con el siguiente formato:

El último argumento (los segundos) no es obligatorio. Observa que en el ejemplo no se pasó a la función of().

Métodos más comunes de la clase LocalDate y LocalDateTime

  • String getMonth(): devuelve el mes en texto en inglés.
  • int getMonthValue(): devuelve el mes en número (1 a 12).
  • int getDayOfMonth(): devuelve el día del mes.
  • int getYear(): devuelve el año.
  • int getDayOfYear(): devuelve el día del año (1 a 365).
  • LocalDateTime minusDays(int dias): devuelve un nuevo objeto LocalDateTime como resultado de restar el número de días especificado.
  • LocalDateTime plusDays(int dias): devuelve un nuevo objeto LocalDateTime como resultado de sumar el número de días especificado.
  • String format(DateTimeFormatter formatter): devuelve una cadena resultado de formatear la salida de la fecha/hora según el formato especificado en el objeto DateTimeFormatter pasado como argumento.

Aplicando formato

Las clases LocalDate, LocalTime y LocalDateTime poseen el método format, que devuelve un texto a partir de la fecha/hora aplicando formato. El método format recibe como argumento un objeto DateTimeFormatter que puede obtenerse invocando al método ofPattern especificando un patrón de formato.

Aplicar formato a los números y a las fechas

La clase DecimalFormat

Dentro del paquete java.text se encuentran un conjunto de clases que permiten formatear la salida de datos numéricos, fechas y otros. En esta ocasión utilizaremos la clase DecimalFormat.

La clase DecimalFormat se utiliza en los casos en los que queremos convertir un valor  numérico a un texto con formato cuando queremos presentar dicho número al usuario con un formato específico. Los objetos de tipo DecimalFormat se construyen de la siguiente manera:

formato establece el tipo de conversión a texto que conseguiremos y se utilizan, entre otros, los siguientes caracteres:

  • 0: indica una cifra que siempre es representada, aunque no sea representativa (un cero a la izquierda de la parte entera o un cero a la derecha de la parte decimal).
  • #: representa una cifra que será representada si es significativa, no incluye ceros a la izquierda de la parte entera ni ceros a la derecha de la parte decimal.
  • . : representa el separador decimal.
  • , : representa el separador de miles.

 

Publicada el
Categorizado como POO