Antes de Java 8 para manejar la hora y las fechas, teníamos Fecha, Calendario, Marca de tiempo (java.util), pero había varios problemas de rendimiento y algunos métodos y clases estaban en desuso, por lo que Java 8 introdujo algunos conceptos nuevos API de fecha y hora ( también conocido como Joda time API’) presente en el paquete java.time.
Java 7: fecha, calendario, marca de tiempo presente dentro del paquete java.util.
Java 8: las API de fecha y hora están presentes dentro del paquete java.time.
Diferentes formas de convertir java.util.Date a java.time.LocalDate:
- Uso de Instancia y ZonedDateTime
- Usando Instant y Date.getTime()
- Usando ofInstant() y ZoneId.systemDefault()
Método 1: Uso de Instancia y ZonedDateTime
Acercarse:
- Primero convertiremos el objeto de fecha en un objeto instantáneo.
- Cada objeto instantáneo está asociado con el zoneId, por lo que debemos proporcionar el zoneId.
- Por último, lo convertiremos en un objeto LocalDate.
Ejemplo:
- En este programa, convertiremos el objeto de fecha en un método instantáneo que devuelve un objeto instantáneo y no toma parámetros.
- Ahora necesitamos asignarle zoneId usando el método en este necesitamos pasar la zona Id como un parámetro por defecto que podemos usar .
- Por último, lo convertiremos en un objeto LocalDate utilizando el método.
Sintaxis:
date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()
Java
// Java program to convert java.util.Date to // java.time.LocalDate // Using Instance and ZonedDateTime import java.io.*; import java.time.*; import java.util.Date; class GFG { public static void main(String[] args) { // first create date object Date current = new Date(); // first convert the date object to instant using // toInstant() then add zoneId using .atZone() at // last convert into localDate using toLocalDate() LocalDate local = current.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDate(); // printing the local date object System.out.println(local); } }
2020-12-21
Método 2: Usar Instant y Date.getTime()
Este enfoque es casi similar al primero, la única diferencia será la forma en que se creará el objeto instantáneo.
- Aquí usaremos el método, toma la fecha como argumento.
- Después de eso, nuevamente usaremos el método para agregar el ZoneId seguido del método para obtener el objeto LocalDate.
Sintaxis:
Instant.ofEpochMilli(date.getTime()) .atZone(ZoneId.systemDefault()).toLocalDate()
Java
// Java program to convert java.util.Date to // java.time.LocalDate // Using Instant and Date.getTime() import java.io.*; import java.time.*; import java.util.*; class GFG { public static void main(String[] args) { // first create date object Date current = new Date(); // first create instant object using // Instant.ofEpochMilli(date.getTime()) than add // zoneId using .atZone() at last convert into // localDate using toLocalDate() LocalDate local = Instant.ofEpochMilli(current.getTime()) .atZone(ZoneId.systemDefault()) .toLocalDate(); // printing the local date object System.out.println(local); } }
2020-12-21
Método 3: Usar ofInstant() y ZoneId.systemDefault()
- Es el enfoque más fácil, usaremos el método de Java 9 de la clase LocalDate, toma dos parámetros.
- Un primer parámetro es un objeto instantáneo de fecha y el segundo es ZoneId.
- Aquí, en el primer argumento, usaremos el método para obtener el objeto instantáneo y para el segundo argumento usaremos
Sintaxis
LocalDate.ofInstant(date.toInstant(), ZoneId.systemDefault());
Java
// Java program to convert java.util.Date to // java.time.LocalDate // Using ofInstant() and ZoneId.systemDefault() import java.io.*; import java.time.*; import java.util.*; class GFG { public static void main(String[] args) { // first create date object Date current = new Date(); // use ofInstant method of LocalDate class // pass instant object and zone id as parameters LocalDate local = LocalDate.ofInstant( current.toInstant(), ZoneId.systemDefault()); // printing the local date object System.out.println(local); } }
2020-12-21
Publicación traducida automáticamente
Artículo escrito por rajatagrawal5 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA