날짜 차이 계산하기

  • 예시 코드
import java.time.LocalDate;
import java.time.Period;

public class Main {
    public static void main(String[] args) {
        LocalDate startDate = LocalDate.of(2021, 9, 16);
        LocalDate endDate = LocalDate.now();

        Period period = Period.between(startDate, endDate);

        System.out.println(period.getYears());
        System.out.println(period.getMonths());
        System.out.println(period.getDays());
    }
}

내 전역일로부터 지금까지 얼마나 시간이 흘렀는지 계산해보았다.
결과를 보니..

벌써 1년 20일이 흘렀다.

여기서 주의할 점은 getDays는 1년 20일의 기간 차이를 일로 환산해 385일을 반환하는 것이 아닌 1년 0월 20일 중 day의 값만 반환한다는 것을 알아둬야 한다.

그렇다면 day로 환산하여 반환하는 방법은 어떤 것이 있을까?
바로 ChronoUnit를 사용하는 것이다.

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

public class Main {
    public static void main(String[] args) {
        LocalDate startDate = LocalDate.of(2021, 9, 16);
        LocalDate endDate = LocalDate.now();

        System.out.println(ChronoUnit.DAYS.between(startDate, endDate));
    }
}

위와 같이 ChronoUnit를 사용하면 두 날짜 사이의 차이를 원하는 단위에 맞게 구할 수 있다.

ChronoUnit.DAYS 말고도 다른 단위를 사용하면 다른 단위에 따른 차이를 구할 수 있다.

ex)

  • YEARS - 년 차이
  • MONTHS - 월 차이
  • WEEKS - 주 차이
  • DAYS - 일 차이
  • HOURS - 시 차이
  • SECONDS - 초 차이
    ...
profile
BackEnd Developer

0개의 댓글