TimeUnit.DAYS.convert(
Math.abs(
new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").parse("30-03-2020 00:00:00").getTime() -
new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").parse("1-03-2020 00:00:00").getTime()
),
TimeUnit.MILLISECONDS)
ফলাফলটি 28, যখন এটি 29 হওয়া উচিত।
সময় অঞ্চল / অবস্থান সমস্যা হতে পারে?
java.time[যদিও আমি মনে করি আপনি জাভা on তে আছেন]], থ্রিটেনবিপি , জোদা)।
TimeUnitডিএসটি সম্পর্কে কিছু জানার ভান করে না। যেমন জাভাডোক বলেছেন: একটি ন্যানোসেকেন্ডকে একটি মাইক্রোসেকেন্ডের এক হাজারতম হিসাবে চিহ্নিত করা হয়েছে, একটি মাইক্রোসেকেন্ডকে এক হাজার সেকেন্ডের এক হাজারতম হিসাবে , এক মিলিসেকেন্ডকে সেকেন্ডের এক হাজারতম হিসাবে, এক মিনিটকে ষাট সেকেন্ড হিসাবে, এক ঘন্টা ষাট মিনিট হিসাবে এবং একদিন হিসাবে চব্বিশ ঘণ্টা । --- যেহেতু ডিএসটি বছরের 24 দিন ঠিক 24 ঘন্টা না হওয়ার কারণ দেয় TimeUnit, তাই ডিএসটি জড়িত থাকার পরে এটি ভুল হয়ে যায়।
SimpleDateFormatএটি আর ব্যবহার করবেন না anyjava.timeপরিবর্তে প্যাকেজ ব্যবহার করুন । ইনSimpleDateFormatএর ক্ষেত্রে, ব্যবহারDateTimeFormatter। জাভা 7 এর ক্ষেত্রে নীচে অ্যান্ডি টার্নারের মন্তব্য দেখুন।