Menukar Antara java.time.LocalDateTime dan java.util.Date
Java 8 memperkenalkan API tarikh dan masa baharu, termasuk java Kelas .time.LocalDateTime untuk nilai tarikh-dengan-masa bebas zon waktu. Walau bagaimanapun, banyak pangkalan kod lama masih menggunakan kelas java.util.Date yang lebih lama. Ini menimbulkan persoalan tentang cara menukar antara dua kelas.
Walaupun tiada kaedah penukaran langsung, langkah berikut menyediakan penyelesaian:
Tukar java.util.Tarikh ke Segera:
Date in = new Date(); Instant instant = in.toInstant();
Tukar Segera kepada LocalDateTime (menentukan Zon Waktu):
LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
Tukar LocalDateTime kepada ZonedDateTime (nyatakan Zon Waktu):
ZoneId systemZoneId = ZoneId.systemDefault(); ZonedDateTime zdt = ldt.atZone(systemZoneId);
Tukar ZonedDateTime kepada Segera:
Instant convertedInstant = zdt.toInstant();
Tukar Semerta kembali kepada java.util.Date:
Date out = Date.from(convertedInstant);
Adalah penting untuk ambil perhatian bahawa penukaran kepada LocalDateTime dan kembali kepada java.util.Date mungkin menghasilkan seketika yang berbeza disebabkan oleh Daylight Menjimatkan Masa.
Selain itu, java.util.Date menggunakan kalendar berbeza untuk tarikh sebelum 15 Oktober, 1582, manakala java.time.* menggunakan kalendar ISO untuk sepanjang masa. Perbezaan ini mungkin menjejaskan keserasian apabila membandingkan tarikh sebelum 1582.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menukar antara java.time.LocalDateTime dan java.util.Date?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!