Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Menukar Antara Zon Waktu dengan Tepat di Jawa?

Bagaimanakah Saya Boleh Menukar Antara Zon Waktu dengan Tepat di Jawa?

DDD
Lepaskan: 2024-12-10 04:50:14
asal
858 orang telah melayarinya

How Can I Accurately Convert Between Time Zones in Java?

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

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

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan