Date, Calendar
- Date - JDK 1.0부터 있던 클래스
- Calendar - Date를 보완한 클래스. JDK 1.1부터 제공됨.
Calendar
- Calendar 사용 시에는 static 메서드인 getInstance()로 생성. (GregorianCalendar, BuddhistCalendar 등 시스템 설정에 맞춰 알맞은 구현 클래스 반환해 줌)
- 현재 날짜를 설정할 때에는 Date 클래스가 여전히 필요하다.
Date date = new Date(); Calendar calendar = Calendar.getInstance(); calenar.setTime(date);
get(Calendar 상수들)
로 날짜 시간 요소 가져올 수 있음.- 차이 구할 때는 getTimeMillis()로 계산 후 알맞은 단위로 변환
포맷팅
- 자바에서는 숫자, 텍스트, 날짜 데이터를 일정한 형식에 맞게 표현할 수 있게 하는 클래스를 제공함.
- DecimalFormat(숫자), SimpleDateFormat(Date 타입), ChoiceFormat(숫자 배열), MessageFormat(문자열 배열)
java.time 패키지
- JDK 1.8 이후부터 제공하는 날짜, 시간 관련 클래스.
- 불변 클래스들이라서 날짜나 시간을 변경하는 메서드들이 항상 새로운 객체를 반환함.
- LocalDate + LocalTime = LocalDateTime
- LocalDatTime + 시간대 = ZonedDateTime
- Instant: 날짜와 시간을 나노 초 단위로 표현. 에포크 타임(1970-01-01 00:00:00 UTC)부터 경과된 시간을 나노초 단위로 표현
- Period: 두 날짜 간의 차이
- Duration: 두 시각의 차이
- 날짜, 시간 표현 클래스들은 Temporal, TemporalAccessor, TemporalAdjuster 인터페이스를 구현.
- Period, Duration은 TemporalAmount 인터페이스를 구현
- 필드 값 변경 시 withXXX(), plusXXX(), minusXXX() 메서드 사용
- 비교 시 isAfter(), isBefore(), isEqual() 메서드 사용
- 이번달의 3번째 금용일 같은 날짜 계산은 TemporalAdjusters의 메서드 사용.
'☕Java > Java 기본' 카테고리의 다른 글
객체를 불변으로 만들기 위한 방어적 복사 (0) | 2023.12.15 |
---|---|
일급 컬렉션이라는 용어에 대해서 (0) | 2023.12.14 |
자바 컬렉션 간 변환(Array, List, Map, Set) 정리 (0) | 2022.10.01 |
API Docs 읽기 - 자바 String (0) | 2022.09.17 |
java.util.Date, java.util.Calendar 클래스를 사용하면 안 되는 이유 (0) | 2022.08.01 |