Rumah >Java >javaTutorial >Bagaimana untuk Mengira Perbezaan Hari dengan Tepat antara Dua Tarikh Masa Joda?
Mengira Perbezaan Hari antara Tarikh-Masa Joda
Dalam Masa Joda, menentukan perbezaan antara dua tarikh dalam hari memerlukan pertimbangan percanggahan masa . Untuk mengira bilangan hari dengan tepat, adalah perlu untuk mengabaikan jam, minit dan saat.
Penyelesaian Asal Menggunakan Days.daysBetween
Kaedah Days.daysBetween muncul untuk menyediakan penyelesaian yang sesuai, tetapi ia menghadapi masalah apabila satu tarikh pada waktu petang dan satu lagi pada waktu pagi. Ini disebabkan oleh keadaan di mana "permulaan hari" boleh merujuk secara samar-samar kepada 1 pagi berbanding tengah malam dalam beberapa zon waktu.
Pengiraan Tepat menggunakan LocalDate
Untuk mengelakkan kekaburan ini , adalah disyorkan untuk menggunakan LocalDate dan bukannya DateTime bersamaan dengan Days.daysBetween. LocalDate mewakili tarikh tanpa maklumat masa, memastikan bahawa hasilnya mencerminkan perbezaan dalam hari sahaja.
Contoh
Pertimbangkan contoh berikut:
DateTime start = new DateTime(2013, 10, 20, 5, 0, 0, DateTimeZone.forID("America/Sao_Paulo")); DateTime end = new DateTime(2013, 10, 21, 13, 0, 0, DateTimeZone.forID("America/Sao_Paulo")); int daysBetween = Days.daysBetween(start.toLocalDate(), end.toLocalDate()).getDays(); System.out.println(daysBetween); // Prints 1
Kesimpulan
Dengan menggunakan LocalDate, perbezaan hari pengiraan menjadi tepat, menghapuskan ketidakkonsistenan yang disebabkan oleh variasi zon waktu dan potensi tarikh mula dan tamat untuk menjangkau hari yang berbeza disebabkan perbezaan masa.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Perbezaan Hari dengan Tepat antara Dua Tarikh Masa Joda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!