Menukar java.util.Date kepada java.time Types
Masalah: Menukar antara java.util.Date atau objek java.util.Calendar dan jenis rangka kerja java.time boleh mengelirukan. Memahami jenis dan pemetaannya adalah penting.
Penyelesaian:
Java 8 memperkenalkan rangka kerja java.time, menawarkan beberapa jenis untuk memanipulasi tarikh dan masa. Jenis java.time yang sesuai untuk dipadankan dengan contoh java.util.Date ditentukan oleh ketepatan dan zon masa yang diperlukan.
Jenis dan Penukaran:
- Semerta: Mewakili sesaat dalam UTC, serupa dengan java.util.Date. Gunakan Instant.ofEpochMilli(myUtilDate.getTime()) untuk menukar.
-
OffsetDateTime: Masa jam dinding dengan offset daripada UTC. Gunakan offset pada Instant untuk mencipta OffsetDateTime. Gunakan OffsetDateTime.ofInstant(instant, ZoneOffset).
-
ZonedDateTime: Waktu jam dinding dengan zon waktu tertentu. Gunakan ZoneId pada Instant untuk mencipta ZonedDateTime. Gunakan ZonedDateTime.ofInstant(instant, ZoneId).
-
LocalDate: Tarikh tanpa masa dalam hari atau zon waktu. Dapatkan LocalDate dengan melalui ZonedDateTime: ZonedDateTime.toLocalDate().
-
LocalTime: Masa dalam hari tanpa tarikh atau zon waktu. Begitu juga, dapatkan LocalTime daripada ZonedDateTime: ZonedDateTime.toLocalTime().
-
LocalDateTime: Gabungan tarikh dan masa tanpa zon waktu. Ambil perhatian bahawa ini mungkin jarang digunakan, kerana ia mewakili titik masa yang tidak spesifik. Gunakan ZonedDateTime.toLocalDateTime().
Perangkap Penukaran:
- Apabila menukar daripada java.time kepada java.util , ketepatan mungkin hilang (nanosaat dipenggal kepada milisaat).
- Apabila menukar daripada java.util.Date kepada LocalDate atau LocalDateTime, zon waktu diperlukan untuk menentukan tarikh atau masa.
Kesimpulan:
Memahami pemetaan antara java.util.Date atau jenis java.util.Calendar dan java.time adalah penting untuk interoperasi yang lancar. Java.time menyediakan pengendalian masa tarikh yang mantap dan tepat, dan penukaran antara rangka kerja lama dan baharu disokong melalui kaedah yang mudah.
Atas ialah kandungan terperinci Bagaimanakah cara saya menukar java.util.Date kepada jenis java.time?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!