Android Dev/Android

[Android] Java8에서 날짜 차이 계산하기(java.time.LocalDate)

서메리 2019. 12. 30. 17:38

Java8의 java.time 패키지에 추가된 LocalDate 클래스 사용 시

until(ChronoLocalDate endDate) 메소드를 사용하여 두 날짜 사이의 기간(Period)을 구할 수 있다.

 

LocalDate today = LocalDate.now(); // 오늘 2019년 12월 30일 LocalDate eventDate = LocalDate.of(2018, 07, 24);

Period period = eventDate.until(today);
System.out.println(period.getYears()); // 1년
System.out.println(period.getMonths()); // 5개월
System.out.println(period.getDays()); // 6일

System.out.println(ChronoUnit.YEARS.between(eventDate, today)); // 1년
System.out.println(ChronoUnit.MONTHS.between(eventDate, today)); // 17개월
System.out.println(ChronoUnit.DAYS.between(eventDate, today)); // 524일

 

주의해야할 점은,

Period 객체의 getYears(), getMonths(), getDays() 메소드는 각각 year에 대한 차, month에 대한 차, day에 대한 차를 리턴하며, 이는 기간 전체에 대한 차이가 아님.

두 날짜 사이의 전체에 대한 차이를 구하려면 ChronoUnit 클래스의 between() 메소드를 사용해야 한다.