Date/Time 초급

타입 안전한 Duration과 Period로 시간 차이를 계산합니다.

✕ 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);
이 코드에 문제가 있나요? 알려주세요.
🎯

타입 안전

시간에는 Duration, 날짜에는 Period — 혼동이 없습니다.

🛡️

올바른 연산

DST 전환, 윤년, 윤초를 올바르게 처리합니다.

📖

가독성

ChronoUnit.DAYS.between()은 영어처럼 읽힙니다.

이전 방식
밀리초 연산
모던 방식
Duration / Period
JDK 버전
8
난이도
초급
Duration과 Period
사용 가능

JDK 8 (2014년 3월) 이후 널리 사용 가능

Duration은 시간 기반 양(시간, 분, 초)을 위한 것이고, Period는 날짜 기반 양(년, 월, 일)을 위한 것입니다. 간단한 차이에는 ChronoUnit.between()을 사용합니다. 모두 엣지 케이스를 올바르게 처리합니다.

공유 𝕏 🦋 in