Rumah > Java > javaTutorial > teks badan

Bagaimanakah cara saya menukar java.util.Date kepada Instant, OffsetDateTime atau ZonedDateTime java.time?

Mary-Kate Olsen
Lepaskan: 2024-11-03 11:24:29
asal
712 orang telah melayarinya

How do I convert java.util.Date to java.time's Instant, OffsetDateTime, or ZonedDateTime?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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

  • Menukar daripada java.util.Date ke a jenis java.time boleh mengakibatkan kehilangan ketepatan kerana peleraian nanosaat tidak disokong oleh kelas warisan.
  • Apabila menukar kepada OffsetDateTime atau ZonedDateTime, maklumat zon waktu mesti disimpan untuk memastikan tafsiran yang betul.
  • Adalah sangat disyorkan untuk menggunakan jenis java.time dalam kod baharu untuk ketepatan dan ketekalan yang dipertingkatkan.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan