시점, 지역 날짜, 기간과 시간대를 구분합니다.
LocalDate는 날짜, Instant는 UTC 시점, ZonedDateTime은 시간대가 있는 날짜·시간, Duration과 Period는 기간을 표현합니다. java.time 타입은 대부분 불변입니다.
LocalDate는 불변이라 plusDays(14)는 start를 바꾸지 않고 2026-08-19라는 새 날짜를 돌려줍니다. 같은 Instant를 서울 시간대로 바꾸면 시점은 그대로이고 표시만 UTC보다 9시간 앞선 09:00이 되며, 끝에 +09:00 오프셋과 지역 ID가 붙습니다. Period의 getDays()는 일 단위 칸만 돌려주므로 한 달을 넘는 기간은 getMonths()와 함께 읽거나 ChronoUnit.DAYS.between으로 전체 일수를 셉니다.
DateTimeFormatter로 명시적인 형식을 사용하고 시스템 기본 시간대에 암묵적으로 의존하지 않습니다.
DB에는 보통 UTC 시점을 저장하고 사용자 경계에서 지역 시간대로 변환하며 DST 전환을 테스트합니다.
LocalDateTime에는 시간대가 없어 전 세계의 한 시점을 단독으로 표현하지 못합니다.
직접 바꿔보세요마감일까지 남은 날짜를 계산하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.