Rumah > Java > javaTutorial > Mengapa pengiraan perbezaan tarikh Java saya tidak tepat, dan bagaimana saya boleh membetulkannya?

Mengapa pengiraan perbezaan tarikh Java saya tidak tepat, dan bagaimana saya boleh membetulkannya?

DDD
Lepaskan: 2024-12-02 20:04:13
asal
528 orang telah melayarinya

Why is my Java date difference calculation inaccurate, and how can I fix it?

Menentukan Perbezaan Masa Antara Tarikh

Pernyataan Masalah:

Mengira perbezaan hari antara dua tarikh, agingDate dan hari ini, menggunakan Java telah membuahkan hasil yang tidak dijangka. Perbezaan yang dikira adalah lebih besar daripada bilangan hari sebenar.

Analisis:

Kod yang disediakan untuk mengira perbezaan hari antara dua tarikh nampaknya betul. Walau bagaimanapun, ralat mungkin berpunca daripada isu yang berpotensi di tempat lain dalam kod anda.

Penyelesaian:

1. Objek Salah: Pastikan agingDate dan hari ini adalah contoh kelas Tarikh yang betul. Sahkan bahawa tiada penukaran jenis atau ralat penghantaran.

2. Percanggahan Zon Masa: Sahkan bahawa zon waktu untuk kedua-dua tarikh adalah konsisten. Jika ia berbeza, tukarkan salah satu tarikh untuk memadankan tarikh yang lain atau masukkan pengendalian zon waktu ke dalam pengiraan anda.

3. Pengiraan dan Logik: Semak semula logik dalam calculateDifference() dan pastikan ia mempertimbangkan semua kemungkinan senario dan kes tepi dengan betul.

Pendekatan Alternatif:

Jika langkah penyelesaian masalah di atas tidak menyelesaikan isu, pertimbangkan untuk menggunakan pustaka luaran seperti Joda Time, seperti yang dicadangkan oleh jawapan yang diberikan. Joda Time menyediakan keupayaan manipulasi tarikh dan masa yang mantap dan boleh memudahkan pengiraan ini. Contoh kod berikut menunjukkan cara menggunakan Joda Time:

import java.util.Date;
import org.joda.time.DateTime;
import org.joda.time.Days;

Date past = new Date(110, 5, 20); // June 20th, 2010
Date today = new Date(110, 6, 24); // July 24th
int days = Days.daysBetween(new DateTime(past), new DateTime(today)).getDays(); // => 34
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa pengiraan perbezaan tarikh Java saya tidak tepat, dan bagaimana saya boleh membetulkannya?. 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