반응형
JAVA8 의 Time 패키지에서 날짜 차이를 구하는 방법을 알아보자.
- Duration 사용
- Period 사용
- ChronoUnit 사용
Duration
두 시간 사이의 간격을 나타낸다.
between() 정적 메서드를 사용하면, Duration 객체를 생성해 준다.
LocalDateTime startDateTime = LocalDateTime.of(2020, 12, 20, 9, 30, 30);
LocalDateTime endDateTime = LocalDateTime.of(2020, 12, 20, 10, 0, 40);
Duration duration = Duration.between(startDateTime, endDateTime);
log.debug("seconds : {}", duration.getSeconds());
// seconds : 1810
Period
두 날짜 사이의 간격을 나타낸다.
between() 정적 메서드를 사용하면, Period 객체를 생성해 준다.
LocalDate startDateTime = LocalDate.of(2020, 12, 18);
LocalDate endDateTime = LocalDate.of(2022, 12, 20);
Period period = Period.between(startDateTime, endDateTime);
log.debug("Years : {}", period.getYears());
log.debug("Months : {}", period.getMonths());
log.debug("Days : {}", period.getDays());
// Years : 2
// Months : 0
// Days : 2
ChronoUnit
Duration과 Period 객체를 생성하지 않고 특정 시간 단위로 차이를 구하는 방법이다.
LocalDateTime startDateTime = LocalDateTime.of(2020, 12, 20, 9, 30, 30);
LocalDateTime endDateTime = LocalDateTime.of(2022, 12, 20, 10, 0, 40);
log.debug("Years: {}", ChronoUnit.YEARS.between(startDateTime, endDateTime));
log.debug("Months: {}", ChronoUnit.MONTHS.between(startDateTime, endDateTime));
log.debug("Weeks: {}", ChronoUnit.WEEKS.between(startDateTime, endDateTime));
log.debug("Days: {}", ChronoUnit.DAYS.between(startDateTime, endDateTime));
startDateTime = LocalDateTime.of(2022, 12, 20, 9, 30, 30);
endDateTime = LocalDateTime.of(2022, 12, 20, 10, 0, 40);
log.debug("Hours: {}", ChronoUnit.HOURS.between(startDateTime, endDateTime));
log.debug("Minutes: {}", ChronoUnit.MINUTES.between(startDateTime, endDateTime));
log.debug("Seconds: {}", ChronoUnit.SECONDS.between(startDateTime, endDateTime));
// Years: 2
// Months: 24
// Weeks: 104
// Days: 730
// Hours: 0
// Minutes: 30
// Seconds: 1810
반응형
'프로그래밍 노트 > JAVA' 카테고리의 다른 글
[Java] LocalDateTime, ZonedDateTime (0) | 2021.07.24 |
---|---|
[JAVA] 가비지 컬렉터(GarabageCollector,GC) (0) | 2021.01.22 |
[JAVA] JVM 가상머신 메모리 구조 (0) | 2020.12.19 |
[JAVA] Stream 요소를 그룹핑해서 수집하기(Collectors.groupingBy) (0) | 2020.01.09 |
[JAVA] Stream 사용자 정의 컨테이너에 수집하기(collect()) (0) | 2020.01.07 |