Penukaran Zon Waktu: Melangkaui Zon Waktu Semasa
Dalam pembangunan perisian, selalunya perlu menukar tarikh dan masa antara zon waktu yang berbeza. Walaupun mudah untuk menukar dari zon waktu tempatan anda kepada yang lain, perkara yang sama mungkin tidak berlaku untuk menukar antara dua zon waktu yang berbeza.
Cabaran
Kesukaran timbul daripada kekurangan spesifikasi zon waktu yang jelas dalam kelas java.util.Date Java. Walaupun nampaknya menggunakan zon waktu JVM lalai dalam kaedah toStringnya, ini boleh menyebabkan ketidaktepatan apabila menukar antara zon waktu yang berbeza.
Penyelesaian: Terima API Tarikh/Masa Moden
Untuk mengelakkan perangkap ini, adalah penting untuk meninggalkan API lama seperti java.util.Date dan Kalendar untuk memihak kepada alternatif moden seperti pakej java.time (diperkenalkan dalam Java 8) atau Joda-Time.
java.time
java.time menyediakan API intuitif untuk memanipulasi tarikh dan masa. Untuk menukar dari satu zon waktu ke zon waktu yang lain, hanya tentukan sumber dan zon waktu sasaran menggunakan objek ZoneId. Kelas ZonedDateTime mewakili masa tertentu dengan zon waktu yang berkaitan. Berikut ialah contoh:
ZonedDateTime nowAuckland = ZonedDateTime.now(ZoneId.of("Pacific/Auckland")); ZonedDateTime nowKolkata = nowAuckland.withZoneSameInstant(ZoneId.of("Asia/Kolkata"));
Joda-Time
Joda-Time juga menyediakan API tarikh/masa yang teguh. Sama seperti java.time, anda boleh menentukan zon waktu menggunakan objek DateTimeZone dan menggunakan kelas DateTime untuk mewakili detik tertentu dalam masa.
DateTimeZone zoneLondon = DateTimeZone.forID("Europe/London"); DateTimeZone zoneKolkata = DateTimeZone.forID("Asia/Kolkata"); DateTime nowLondon = DateTime.now(zoneLondon); DateTime nowKolkata = nowLondon.withZone(zoneKolkata);
Dengan menggunakan API moden ini, anda boleh menukar antara zon waktu yang berbeza dengan berkesan dan mengelakkan perangkap yang dikaitkan dengan kelas java.util.Date warisan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Antara Zon Waktu dengan Tepat di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!