Duration و Period
احسب فوارق الوقت بـ Duration و Period الآمنَين من حيث النوع.
مقارنة الكود
✕ Pre-Java 8
// How many days between two dates?
long diff = date2.getTime()
- date1.getTime();
long days = diff
/ (1000 * 60 * 60 * 24);
// ignores DST, leap seconds
✓ Java 8+
long days = ChronoUnit.DAYS
.between(date1, date2);
Period period = Period.between(
date1, date2);
Duration elapsed = Duration.between(
time1, time2);
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
آمن من حيث النوع
Duration للوقت و Period للتواريخ — لا التباس.
حساب صحيح
يتعامل مع انتقالات التوقيت الصيفي والسنوات الكبيسة والثواني الكبيسة.
مقروء
ChronoUnit.DAYS.between() يُقرأ كاللغة الطبيعية.
الأسلوب القديم
حساب الميلي ثانية
الأسلوب الحديث
Duration / Period
منذ JDK
8
الصعوبة
مبتدئ
دعم JDK
Duration و Period
متاح
متاح على نطاق واسع منذ JDK 8 (مارس 2014)
كيف يعمل
Duration للكميات الزمنية (ساعات ودقائق وثوان). Period للكميات المبنية على التاريخ (سنوات وأشهر وأيام). ChronoUnit.between() للفروق البسيطة. جميعها تتعامل مع الحالات الطرفية بشكل صحيح.
توثيق ذو صلة