Duration ve Period
Zaman farklarını tür-güvenli Duration ve Period ile hesaplayın.
Kod Karşılaştırması
✕ 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);
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Tür-güvenli
Zaman için Duration, tarihler için Period — karışıklık yok.
Doğru hesaplama
Yaz saati geçişlerini, artık yılları ve artık saniyeleri doğru ele alır.
Okunabilir
ChronoUnit.DAYS.between() doğal dil gibi okunur.
Eski Yaklaşım
Milisaniye Matematiği
Modern Yaklaşım
Duration / Period
JDK'dan itibaren
8
Zorluk
Başlangıç
JDK Desteği
Duration ve Period
Mevcut
JDK 8'den (Mart 2014) itibaren geniş çapta kullanılabilir
Nasıl çalışır
Duration, saat, dakika ve saniye gibi zaman tabanlı miktarlar içindir. Period ise yıl, ay ve gün gibi tarih tabanlı miktarlar içindir. Basit farklar için ChronoUnit.between() kullanılır. Tümü kenar durumları doğru şekilde ele alır.
İlgili Belgeler