Fechas antes de versión 8 de Java - versión 8 en adelante de Java

TRABAJAR CON FECHAS EN JAVA

La forma clásica de trabajar con fechas en Java es con las clases Date y Calendar. La primera representa un punto cronológico en el tiempo, expresado en milisegundos. La segunda nos ofrece una interfaz más rica con la que poder trabajar con fechas. 

Un ejemplo de uso sería el siguiente:

Calendar calendar = Calendar.getInstance();

// instancia con el tiempo local

calendar.set(Calendar.YEAR, 1990);

calendar.set(Calendar.MONTH, 3);

calendar.set(Calendar.DATE, 10);

calendar.set(Calendar.HOUR_OF_DAY, 15);

calendar.set(Calendar.MiNUTE, 32);

Date date = calendar.getTime();

// convertimos de Calendar a Date

Sin embargo, esta API tiene algunos problemas. No tiene un diseño demasiado bueno, puesto que no pueden utilizarse fechas y horas por separado, y no thread safe, lo que puedo ocasionar problemas de concurrencia. Por eso, Java 8 introdujo una nueva API que ofrecía fechas inmutables, adaptadas a diferentes calendarios y con un diseño mejorado que nos ofrece métodos factoría. Podemos encontrar esta API en el paquete java.time.

Las clases base son LocalTime, LocalDate y LocalDateTime.

LocalDateTime timepoint = LocalDateTime.now();

// Fecha y hora

LocalDate date = LocalDate.of(2020, Month.JULY, 27);

// Obtenemos la fecha indicada

LocalTime.of(17, 30);

// obtenemos la hora indicada

LocalTime.parse("17:30:00");

// Otra forma para la hora 

// Usamos la convención estándar parar get

Month month = timepoint.getMonth();

int day = timepoint(getDayOfMonth();

// Son inmutables, así que cambiar el valor retorna un objeto

LocalDateTime happyTwenties = timepoint.withYear(1920)

.withMonth(Month.January)

.withDayOfMonth(1)

.plusWeeks(3);

El paquete también ofrece otras clases adicionales, como Period o Duration, que sirven para representar laspos de tiempos, algo que no estaba soportado por Date y Calendar. Además, existen otras herramientas y conceptos más avanzados que puedes investigar si estás interesado.

Formateado de texto

Si tratamos de sacar por pantalla el valor de números decimales o fechas, podemos encontrarnos con que el resultado no es demasiado legible ni atractivo. Java nos ofrece algunas clases para trabajar con el formato del texto en el paquete java.text. Veamos un ejemplo a continuación:

Date date = new Date(); // Fecha Actual

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");

String date = sdf.format(date);











No hay comentarios:

Publicar un comentario

Contenido desarrollo de software - Arquitectura Software

ENUM en JAVA