LocalDate: 시간을 제외한 날짜를 표현하는 불변 객체
LocalDate date = LocalDate.of(2024,07,05);
LocalTime: 시간 분 초를 표현하는 불변 객체
LocalTime time = LocalTime.of(18,30,00);
LocalDateTime: LocalDate + LocalTime
LocalDateTime dt = LocalDateTime.of(2024, Month.JULY, 05, 18,30,00);
Instant: 유닉스 에포크 시간을 기준으로 특정 지점까지의 시간을 초로 표현
Duration: 정적 메서드 between으로 두 시간 객체 사이의 지속시간을 만든다
Duration oneDay = Period.between(LocalDate.of(2024,7,5),
LocalDate.of(2024,7,6));
withAttribute 메서드로 기존 LocalDate을 바꾼버전을 만들 수 있다
LocalDate date = LocalDate.of(2024,07,05);
LocalDate date1 = date.withYear(2025);
기존 LocalDate에서 시간을 추가하거나 빼는것도 가능
LocalDate date = LocalDate.of(2024,07,05);
LocalDate date1 = date.plusWeeks(1);
TemporalAdjuster: 조금 더 복잡한 날짜 변경이 필요할때 사용
import static java.time.temporal.TemporalAdjusters.*;
LocalDate date = LocalDate.of(2024,07,05);
LocalDate date1 = date.with(nextOrSame(DayOfWeek.SUNDAY));
DateTimeFormatter: 날짜 시간을 파싱할 수 있다
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate date = LocalDate.of(2024,07,05);
String formattedDate = date.format(formatter);
표준 시간이 같은 지역을 묶어서 시간대 규칙 집합을 정의
ZoneId의 getRules()를 이용해서 해당 시간대의 규정을 획득
ZoneId romeZone = ZoneId.of("Europe/Rome");
LocalDate date = LocalDate.of(2024,07,05);
ZonedDateTime zd = date.atStartOfDay(romeZone);
ZoneOffset newYorkOffset = ZoneOffset.of("-05:00");
LocalDate date = LocalDate.of(2024,07,05);
OffsetDateTime dateTimeNewYork = OffsetDateTime.of(date, newYorkOffset);