Java8의 java.time 패키지에 새롭게 추가된 LocalDate 클래스 사용시, until(ChronoLocalDate endDate)
메소드를 사용하면 두 날짜사이의 기간(Period
)을 구할수 있습니다. 리턴 받은 Period
객체의 getYears()
, getMonths()
, getDays()
메소드를 호출하면 년도 차이, 달 차이, 일 차이를 알 수 있습니다.
|
|
여기서 주의해야할 점이 있는데, period 객체의 getDays()
메소드는 2년 3개월을 뺀 나머지인 21일이 리턴되는 것이지 기간 전체의 일 수 차이가 리턴되는 것이 아닙니다. (getYears(), getMonths() 도 마찬가지입니다.)
두 날짜간 전체 일 수 차이를 구하려면 ChronoUnit
클래스의 between()
메소드를 사용하면 됩니다.
ChronoUnit 클래스는 enum 클래스이며 기간 단위별로 enum 타입이 정의되어 있습니다.
- ChronoUnit.YEARS : 년
- ChronoUnit.MONTHS : 월
- ChronoUnit.WEEKS : 주
- ChronoUnit.DAYS : 일
- ChronoUnit.HOURS : 시간
- …
두 날짜간 전체 일 수를 구하려면 다음과 같이 사용합니다.12long days = ChronoUnit.DAYS.between(hiredDate, today);System.out.println(days); // 884일
이런식으로 ChronoUnit 클래스의 between() 메소드를 사용하면 년도 차이, 월 차이, 주 차이.. 등을 구할 수 있습니다.