Tukar java.util.Date kepada Instant, OffsetDateTime atau ZonedDateTime java.time
Sambil kita berhijrah ke arah rangka kerja java.time moden , adalah penting untuk mengetahui cara menukar objek java.util.Date warisan kepada jenis java.time yang sesuai. Berikut ialah senarai kesetaraan:
java.util.Date to Instant
Kedua-duanya mewakili detik dalam UTC, jadi penukaran adalah mudah:
<code class="java">Instant instant = myUtilDate.toInstant(); java.util.Date myUtilDate = java.util.Date.from(instant);</code>
java.util.Date ke OffsetDateTime atau ZonedDateTime java.time
Memandangkan jenis ini menggabungkan maklumat zon waktu, mengekstrak zon daripada Tarikh warisan adalah perlu:
<code class="java">// If the legacy date is a GregorianCalendar (which can hold time zone info) if (myUtilCalendar instanceof GregorianCalendar) { GregorianCalendar gregCal = (GregorianCalendar) myUtilCalendar; ZonedDateTime zdt = gregCal.toZonedDateTime(); // ZonedDateTime with time zone java.util.Calendar myUtilCalendar = java.util.GregorianCalendar.from(zdt); }</code>
Pemetaan Penukaran Tambahan
Legacy Type | java.time Equivalent | Additional Notes |
---|---|---|
java.util.Calendar | Instant | Converts to the start of the day in UTC |
java.util.GregorianCalendar | ZonedDateTime | Retains time zone information |
java.util.LocalDate | ZonedDateTime | Requires a time zone to determine the date |
java.util.LocalTime | Instant | Converts to the start of the day in UTC |
java.util.LocalDateTime | ZonedDateTime | Requires a time zone to determine the date and time |
Pertimbangan Penting
Atas ialah kandungan terperinci Bagaimanakah cara saya menukar java.util.Date kepada Instant, OffsetDateTime atau ZonedDateTime java.time?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!