Time
La librería "java.time" en Java 8 proporciona una nueva API de fecha y hora con una mayor claridad y funcionalidad en comparación con las clases de fecha y hora anteriores. A continuación se presentan algunos de los tipos y métodos más comunes de esta librería, junto con ejemplos de su uso:
LocalDate: representa una fecha sin hora ni zona horaria, como "2022-12-03".
LocalDate fechaActual = LocalDate.now();
System.out.println("Fecha actual: " + fechaActual);
LocalTime: representa una hora sin fecha ni zona horaria, como "10:15:30".
LocalTime horaActual = LocalTime.now();
System.out.println("Hora actual: " + horaActual);
LocalDateTime: representa una fecha y hora sin zona horaria, como "2022-12-03T10:15:30".
LocalDateTime fechaHoraActual = LocalDateTime.now();
System.out.println("Fecha y hora actual: " + fechaHoraActual);
ZonedDateTime: representa una fecha y hora con zona horaria, como "2022-12-03T10:15:30+01:00[Europe/Paris]".
ZonedDateTime fechaHoraZonaActual = ZonedDateTime.now();
System.out.println("Fecha, hora y zona actual: " + fechaHoraZonaActual);
Duration: representa una duración de tiempo en unidades de segundos y nanosegundos.
Duration duracion = Duration.ofMinutes(60);
System.out.println("Duración de 60 minutos: " + duracion);
Period: representa una cantidad de tiempo en unidades de años, meses y días.
Period periodo = Period.of(1, 2, 3);
System.out.println("Periodo de 1 año, 2 meses y 3 días: " + periodo);
LocalDate.of(2022,12,3): devuelve un objeto LocalDate para la fecha especificada.
LocalDate fechaEspecifica = LocalDate.of(2022, 12, 3);
System.out.println("Fecha específica: " + fechaEspecifica);
LocalDate.parse("2022-12-03"): devuelve un objeto LocalDate a partir de una cadena en el formato ISO_LOCAL_DATE.
LocalDate fechaParseada = LocalDate.parse("2022-12-03");
System.out.println("Fecha parseada: " + fechaParseada
Aquí tienes algunos ejemplos de cómo utilizar el paquete java.time
en Java para trabajar con fechas y horas:
-
Creación de fechas y horas:
// Crear una fecha actual LocalDate today = LocalDate.now(); // Crear una fecha específica LocalDate specificDate = LocalDate.of(2023, 5, 15); // Crear una hora específica LocalTime specificTime = LocalTime.of(14, 30); // Crear una fecha y hora específica LocalDateTime specificDateTime = LocalDateTime.of(2023, 5, 15, 14, 30);
-
Operaciones de fecha y hora:
// Sumar o restar días a una fecha LocalDate tomorrow = LocalDate.now().plusDays(1); LocalDate yesterday = LocalDate.now().minusDays(1); // Calcular la diferencia en días entre dos fechas long daysBetween = ChronoUnit.DAYS.between(startDate, endDate); // Comprobar si una fecha está en un rango boolean isInRange = startDate.isBefore(checkDate) && endDate.isAfter(checkDate);
-
Manejo de zonas horarias:
// Crear una fecha y hora en una zona horaria específica ZonedDateTime specificZoneDateTime = ZonedDateTime.of(LocalDateTime.now(), ZoneId.of("America/New_York")); // Convertir una fecha y hora a otra zona horaria ZonedDateTime sameTimeDifferentZone = specificZoneDateTime.withZoneSameLocal(ZoneId.of("Europe/London"));
-
Análisis y formato de fechas:
// Analizar una fecha de una cadena LocalDate parsedDate = LocalDate.parse("2023-05-15"); // Formatear una fecha en una cadena String formattedDate = specificDate.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
-
Operaciones avanzadas:
// Calcular la próxima fecha de un día de la semana específico LocalDate nextFriday = LocalDate.now().with(TemporalAdjusters.next(DayOfWeek.FRIDAY)); // Crear una duración entre dos momentos LocalDateTime startDateTime = LocalDateTime.now(); LocalDateTime endDateTime = LocalDateTime.now().plusHours(2); Duration duration = Duration.between(startDateTime, endDateTime);
Estos ejemplos demuestran algunas de las operaciones más comunes que puedes realizar con el paquete java.time
. La API de fecha y hora de Java ofrece una variedad de funciones para realizar cálculos complejos y trabajar con fechas y horas de manera más eficiente y segura.
https://www.tutorialspoint.com/java/java_date_time.htm
https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html