Rumah >Java >javaTutorial >Bagaimana untuk Menukar Jenis `java.util.Date` kepada `java.time`?

Bagaimana untuk Menukar Jenis `java.util.Date` kepada `java.time`?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-05 19:05:02822semak imbas

How to Convert `java.util.Date` to `java.time` Types?

Tukar java.util.Tarikh kepada jenis “java.time” apa?

Penjelasan:

Rangka kerja java.time menyediakan kelas tarikh dan masa moden serta dipertingkatkan berbanding kelas java.util lama. Rangka kerja ini menawarkan lebih fleksibiliti, ketepatan dan kefungsian. Apabila menggunakan kod lama yang masih menggunakan jenis java.util, anda perlu menukar antara dua rangka kerja.

Pilihan Penukaran:

1 . Daripada java.util.Date ke java.time.Instant:

  • Semerta mewakili detik tertentu dalam masa pada garis masa UTC dengan ketepatan nanosaat.
  • Kepada tukar daripada java.util.Date, gunakan kaedah .toInstant() pada objek Date:

    <code class="java">Instant instant = myUtilDate.toInstant();</code>

2. Daripada java.util.Calendar kepada Instant:

  • Kalendar secara dalaman menjejaki masa sebagai milisaat dari zaman.
  • Untuk menukar daripada Kalendar, gunakan .toInstant( ) kaedah:

    <code class="java">Instant instant = myUtilCalendar.toInstant() ;</code>

    3. Daripada java.util.GregorianCalendar kepada ZonedDateTime:

  • GregorianCalendar termasuk maklumat zon waktu.
  • Untuk menukar, turunkan Kalendar kepada GregorianCalendar dan gunakan .toZonedDateTime() kaedah untuk mendapatkan ZonedDateTime:

    <code class="java">if (myUtilCalendar instanceof GregorianCalendar) {
      GregorianCalendar gregCal = (GregorianCalendar) myUtilCalendar;
      ZonedDateTime zdt = gregCal.toZonedDateTime();
    }</code>

4. Dari Instant to Other java.time Types:

  • OffsetDateTime: Mewakili titik masa dengan offset dari UTC (cth., "-04:00" untuk Waktu Timur).
  • ZonedDateTime: Mewakili titik dalam masa dengan zon waktu tertentu.
  • LocalDate: Mewakili tarikh tanpa masa atau zon waktu.
  • LocalTime: Mewakili masa tanpa tarikh atau masa zon.
  • LocalDateTime: Mewakili kedua-dua tarikh dan masa tanpa zon waktu (hanya untuk anggaran kasar).

Penukaran daripada java.time Types kepada java.util .Tarikh:

  • Untuk menukar daripada Segera kepada Tarikh, ekstrak Instant dan kemudian gunakan .toInstant() pada Tarikh:

    <code class="java">java.util.Date myUtilDate = java.util.Date.from(instant);</code>
  • Penukaran serupa boleh dilakukan daripada OffsetDateTime dan ZonedDateTime.

Nota:

Apabila menukar daripada jenis java.time kepada jenis java.util, ketepatan mungkin hilang kerana java.util.Date dan java.util.Calendar hanya mengendalikan milisaat manakala jenis java.time mempunyai ketepatan nanosaat.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Jenis `java.util.Date` kepada `java.time`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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