Menukar java.util.Date ke java.time.LocalDate
API tarikh dan masa Java telah dirombak dalam JDK 8/JSR-310 , memperkenalkan paradigma baharu untuk mengendalikan operasi berkaitan tarikh. Tugas biasa dalam peralihan ini ialah menukar objek java.util.Date sedia ada kepada format java.time.LocalDate baharu.
Jawapan Ringkas
Untuk menukar java. util.Date ke LocalDate, ikut ini langkah:
Date input = new Date(); LocalDate date = input.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
Penjelasan
java.util.Date mewakili sesaat dalam masa tanpa sebarang maklumat zon waktu. Walau bagaimanapun, LocalDate mewakili tarikh kalendar tertentu tanpa masa atau zon masa.
Untuk menukar Tarikh kepada LocalDate, anda mesti menukar Tarikh kepada Segera menggunakan kaedah toInstant() dahulu. Instant tidak mempunyai zon waktu yang dikaitkan dengannya.
Seterusnya, anda perlu menggunakan zon waktu pada Instant untuk mendapatkan objek ZonedDateTime. Anda boleh menggunakan ZoneId.systemDefault() untuk mendapatkan zon waktu sistem lalai.
Akhir sekali, anda boleh mengekstrak komponen LocalDate daripada objek ZonedDateTime menggunakan kaedah toLocalDate().
Java 9 Answer
Java SE 9 memperkenalkan alternatif yang lebih mudah untuk di atas penukaran:
Date input = new Date(); LocalDate date = LocalDate.ofInstant(input.toInstant(), ZoneId.systemDefault());
Kaedah ini menukar terus Tarikh kepada LocalDate tanpa memerlukan objek ZonedDateTime perantaraan.
Atas ialah kandungan terperinci Bagaimana untuk Menukar `java.util.Date` kepada `java.time.LocalDate`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!