개요
java.util 패키지에 있는 Date, Calendar 클래스를 대체하고자? 만든? 패키지로, 현재 시간과 관련된 클래스들이 있다.
대표적인 클래스
LocalDate - 현재 연/월/일을 알아낸다.
LocalTime - 현재 시/분/초/나노초를 알아낸다.
LocalDateTime - 현재 연/월/일/시/분/초/나노초를 알아낸다.
기능 및 장단점
Calendar 클래스와 달리, 알아서 현재 컴퓨터가 사용중인 시간이 적용된다. 적용 시간대를 바꾸고 싶다면 원하는 시간대의 타임존 인자값을 넣어주는 것으로 알아서 해결해준다!
즉 대충 만들어도 우리나라 시간으로 등록이 된다는 거임! 이게 장점이자 단점인데,
- 글로벌한 시간대에서 아주 정밀하게 시간을 따져야 한다
- 그레고리력(지금 우리가 쓰는 태양력)이 아닌 역법을 써서 날짜를 알아내야 한다
...는 상황에 처하게 되면 쓰기가 곤란해진다.
사용법
// 현재 날짜와 시간을 기반으로한 LocalDateTime 생성
LocalDateTime datetime = LocalDateTime.now();
// 2022년 2월 10일로 고정된 LocalDate 생성
LocalDate date = LocalDate.of(2022, Month.FEBRUARY, 10);
// 15시 30분으로 고정된 LocalTime 생성
LocalTime time = LocalTime.of(15, 30);
// 15시 30분 13초라는 문자열을 파싱해 LocalTime 생성
LocalTime time2 = LocalTime.parse("15:30:13");
// getter의 일부분
LocalDate tempDate = datetime.toLocalDate(); // LocalDate형으로 생성
LocalTime tempTime = datetime.toLocalTime(); // LocalTime형으로 생성
Month month = datetime.getMonth(); // 월
int day = datetime.getDayOfMonth(); // 일
int hour = datetime.getHour(); // 시
int minute = datetime.getMinute(); // 분
int second = datetime.getSecond(); // 초
int nano = datetime.getNano(); // 나노초
주의사항
값 기반(value-based) 클래스이므로, 서로 비교하고자 한다면 ==나 해시코드 대조는 쓰지 않는 것이 좋다. Equals() 라는 갓갓 메소드를 쓰자.
'프로그래밍 > Java' 카테고리의 다른 글
| 컬렉션 프레임워크 (0) | 2024.02.12 |
|---|---|
| 메모용 - Java 8~14 버전까지 (0) | 2024.02.12 |
| 스레드 ( Thread ) (0) | 2022.02.11 |
| 어노테이션 ( Annotation ) (0) | 2022.02.10 |
| java.io (0) | 2022.02.10 |