1. java.time 패키지
- 자바에서 날짜와 시간을 다루는 클래스들이 담긴 패키지
- Calendar와 Date의 단점을 보완하여 JDK 1.8 버전에 추가되었습니다.
- 5개의 클래스가 존재합니다.
LocalDate : 로컬 날짜 클래스
LocalTime : 로컬 시간 클래스
LocalDateTime : 로컬 날짜 및 시간 클래스 (Localdate + LocalTime)
ZonedDateTime : 특정 타임존(TimeZone)의 날짜와 시간 클래스
Instant : 특정 시점의 Time-Stamp 클래스
1. LocalDate 클래스
(1) LocalDate 생성
- now() : 현재 날짜와 시간을 반환합니다.
- of() : 매개변수로 값을 지정할 수 있습니다.
LocalDate date1 = LocalDate.now();
LocalDate date2 = LocalDate.of(2023, 11, 06);
(2) 주요 get 메소드 종류
date1.getYear();
date1.getMonthValue();
date1.getDayOfMonth();
`
date1.getHour();
date1.getMinute();
date1.getSecond();
date1.getNano();
(3) 날짜 변경 메소드
- LocalDate는 불변객체입니다. 따라서 속성값(연,월,일)을 바꾸려면 새로운 객체를 생성하거나 기존 객체에 재할당 해야합니다.
- 특정 값으로 바꾸기
date2 = date2.withYear(2030);
date2 = date2.withMonth(12);
date2 = date2.withDayOfMonth(25);
date2 = date2.withYear(2040).withMonth(10).withDayOfMonth(10);
- 상대값으로 바꾸기
date2 = date2.plusYears(1);
date2 = date2.plusMonths(1);
date2 = date2.plusWeeks(1);
date2 = date2.plusWeeks(1);
(4) 요일 구하기 (숫자)
LocalDate date = LocalDate.of(2023,12,25);
DayOfWeek dayOfWeek = date.getDayOfWeek();
int dayOfWeekNumber = dayOfWeek.getValue();
월요일이 1, 화요일이 2, ... 일요일이 7이다.