Rumah  >  Artikel  >  Java  >  Gunakan kelas OffsetDateTime dan kelas ZoneOffset baharu dalam Java 11 untuk mengendalikan tarikh dan masa dengan offset

Gunakan kelas OffsetDateTime dan kelas ZoneOffset baharu dalam Java 11 untuk mengendalikan tarikh dan masa dengan offset

王林
王林asal
2023-07-31 18:17:301029semak imbas

Gunakan kelas OffsetDateTime dan kelas ZoneOffset baharu dalam Java 11 untuk mengendalikan tarikh dan masa dengan offset

Petikan:
Java 11 memperkenalkan kelas OffsetDateTime dan kelas ZoneOffset baharu untuk mengendalikan tarikh dan masa dengan offset zon masa. Kelas ini menyediakan lebih banyak fleksibiliti dan fungsi, membolehkan pembangun mengendalikan tarikh dan masa dengan lebih baik dalam zon waktu yang berbeza.

  1. Pengenalan kepada kelas OffsetDateTime
    Kelas OffsetDateTime ialah sebahagian daripada API tarikh dan masa yang diperkenalkan di Java 8. Ia mewakili tarikh dan masa dengan zon waktu mengimbangi. Ia mengandungi maklumat mengimbangi tarikh, masa dan zon masa. Kelas OffsetDateTime tidak boleh diubah dan kejadian boleh dibuat melalui kaedah kilang statik(), sebagai contoh:
OffsetDateTime offsetDateTime = OffsetDateTime.of(2022, 1, 1, 12, 0, 0, 0, ZoneOffset.ofHours(8));

Dalam kod di atas, kami mencipta tika OffsetDateTime yang mewakili 12:00:00 pada 1 Januari 2022 dan menentukan zon waktu mengimbangi +8 jam.

Kelas OffsetDateTime menyediakan satu siri kaedah untuk mendapatkan dan memanipulasi bahagian berlainan tarikh, masa dan zon masa yang diimbangi. Sebagai contoh, kita boleh menggunakan getYear(), getMonth(), getDayOfMonth() dan kaedah lain untuk mendapatkan tahun, bulan dan hari tarikh:

int year = offsetDateTime.getYear();
Month month = offsetDateTime.getMonth();
int dayOfMonth = offsetDateTime.getDayOfMonth();
  1. Pengenalan kepada kelas ZoneOffset
    Kelas ZoneOffset adalah sebahagian daripada tarikh dan API masa yang diperkenalkan dalam Java 8 , yang mewakili zon masa mengimbangi, dinyatakan dalam selang masa tetap. Offset adalah relatif kepada Waktu Sejagat Selaras (UTC) dan diukur dalam jam. Kelas ZoneOffset tidak boleh diubah dan kejadian boleh dibuat melalui kaedah kilang statik Hours() atau ofTotalSeconds(), sebagai contoh:
ZoneOffset zoneOffset = ZoneOffset.ofHours(8);
ZoneOffset zoneOffset = ZoneOffset.ofTotalSeconds(28800);

Dalam kod di atas, kami telah mencipta offset zon waktu masing-masing +8 jam dan +28800 Contoh ZoneOffset bagi zon masa mengimbangi dalam beberapa saat.

Kelas ZoneOffset menyediakan satu siri kaedah untuk mendapatkan dan memanipulasi bahagian offset yang berlainan. Sebagai contoh, kita boleh menggunakan kaedah getTotalSeconds() untuk mendapatkan jumlah saat offset:

int totalSeconds = zoneOffset.getTotalSeconds();
  1. Kod Contoh
    Di bawah ialah contoh kod yang menunjukkan cara menggunakan kelas OffsetDateTime dan kelas ZoneOffset untuk mengendalikan tarikh dengan zon masa offsets Dan masa:
import java.time.OffsetDateTime;
import java.time.Month;
import java.time.ZoneOffset;

public class DateTimeExample {
    public static void main(String[] args) {
        OffsetDateTime offsetDateTime = OffsetDateTime.of(2022, 1, 1, 12, 0, 0, 0, ZoneOffset.ofHours(8));
        
        int year = offsetDateTime.getYear();
        Month month = offsetDateTime.getMonth();
        int dayOfMonth = offsetDateTime.getDayOfMonth();
        int hour = offsetDateTime.getHour();
        int minute = offsetDateTime.getMinute();
        int second = offsetDateTime.getSecond();
        
        System.out.println("Year: " + year);
        System.out.println("Month: " + month);
        System.out.println("Day of Month: " + dayOfMonth);
        System.out.println("Hour: " + hour);
        System.out.println("Minute: " + minute);
        System.out.println("Second: " + second);
        
        ZoneOffset zoneOffset = ZoneOffset.ofHours(8);
        int totalSeconds = zoneOffset.getTotalSeconds();
        
        System.out.println("Total Seconds: " + totalSeconds);
    }
}

Hasil keluaran:

Year: 2022
Month: JANUARY
Day of Month: 1
Hour: 12
Minute: 0
Second: 0
Total Seconds: 28800

Dalam kod contoh di atas, kami mula-mula mencipta tika OffsetDateTime yang mewakili 12:00:00 pada 1 Januari 2022, dan memperoleh bahagian yang berbeza (tahun, bulan, hari, jam, minit, saat). Kami kemudiannya mencipta tika ZoneOffset yang mewakili zon waktu +8 jam offset dan memperoleh jumlah saat offset.

Kesimpulan:
Menggunakan kelas OffsetDateTime dan kelas ZoneOffset dalam Java 11, kami boleh mengendalikan tarikh dan masa dengan lebih baik dengan offset zon masa. Kelas-kelas ini menyediakan set fungsi dan kaedah yang kaya yang membolehkan pembangun mendapatkan dan memanipulasi bahagian yang berlainan tarikh, masa dan zon waktu mengimbangi. Pembangun boleh menggunakan kelas ini untuk mengendalikan tarikh dan masa dalam zon waktu yang berbeza mengikut keperluan sebenar, meningkatkan kebolehbacaan dan kebolehselenggaraan kod.

Atas ialah kandungan terperinci Gunakan kelas OffsetDateTime dan kelas ZoneOffset baharu dalam Java 11 untuk mengendalikan tarikh dan masa dengan offset. 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