Java Time Package
1. java.time 패키지
- JDK 1.8~
- Date, Calendar 날짜, 시간 다루는 클래스 + 유용한 기능
( 4개의 하위 패키지 )
* java.time - 날짜, 시간을 다루는 핵심 클래스 제공
ㄱ. java.time.chrono - 표준(ISO)이 아닌 달력 시스템을 위한 클래스 제공
ㄴ. java.time.format - 날짜, 시간, 파싱(parse), 형식화하기 클래스 제공
ㄷ. java.time.temporal - 날짜, 시간의 필드와 단위를 위한 클래스 제공
ㄷ. java.time.zone - 시간대(time-zone) 관련 클래스 제공
2. 위의 패키지에 속한 클래스들은 "불변" 한다. (String)
String a = "a";
a +=a; // 새로운 객체생성
3. Date, Calendar 클래스 = 날짜 + 시간 정보
java.time 패키지의 클래스는 날짜, 시간 클래스를 구분해놨다.
ㄱ. 날짜 : LocalDate 클래스
ㄴ. 시간 : LocalTime 클래스
ㄷ. 날짜 + 시간 : LocalDateTime
날짜 + 시간 + 시간대 : ZonedDateTime
ㄹ. Date 클래스 유사한 클래스 : Instant 클래스
날짜 + 시간을 초 단위(나노)로 표현
ㅁ. "타임스탬프" 정의 ? 날짜와 시간을 초 단위로 표현한 값.
사용 ? 날짜 또는 시간의 차이, 순서, DB(DataBase)에서 많이 사용
ㅂ. 날짜 세부 클래스 : Year, YearMonth, MonthDay 클래스 등등
4. Period 와 Duration
ㄱ. 날짜 - 날짜 (간격) : Period 클래스
두 '날짜' 간의 차이를 표현하기 위해서 사용하는 클래스
ㄴ. 시간 - 시간 (간격) : Duration 클래스
두 '시간' 간의 차이를 표현하기 위해서 사용하는 클래스
5. java.time 패키지의 속한 클래스의 객체 생성하는 방법
ㄱ. now()
ㄴ. of()
LocalDate d = LocalDate.now(); // 현재 시스템의 날짜, 시간, 시간대
LocalTime T = LocalTime.now();
LocalDateTime dt = LocalDateTime.now();
ZonedDateTime zdt = ZonedDateTime.now();
6. class LocalDate implements Temporal, TemporalAccssor, TemporalAjuster
class LocalTime implements Temporal, TemporalAccssor, TemporalAjuster
class LocalDateTime implements Temporal, TemporalAccssor, TemporalAjuster
Temporal 과 TemporalAmount
Period - implements TemporalAmount
Duration - implements TemporalAmount
7. TemporalUnit 인터페이스 ? 날짜, 시간의 단위를 정의해 놓은 것
위의 인터페이스를 구현한 열거형 (enum)? ChronoUnit 열거형
TemporalField 인터페이스 ? 년, 월, 일 등 날짜와 시간의 필드를 정의해 놓은 것
? ChronoField 열거형
ex)
LocalTime now = LocalTime.now();// 현재 시간
int m = now.getMinute();//분
System.out.println(m);
m = now.get(ChronoField.SECOND_OF_MINUTE);
System.out.println(m);
8. 마지막 날짜
ex) 2010.01.01 -1 날짜 객체.일 * add (일수)
plus(), minus() 등등 날짜, 시간을 다루는 메서드 제공.
여기서 부터는 코드 예시를 정리해 보았다.
* 기본 코드 살펴보기
* LocalDate now.
* 간결화
* 필드의 값 변경하기 - with() , plus() , minus()
* 불변성과 절삭하기
* String -> LocalDate 형 만들기
* Period & Duration , between() & util()
* 두 시간의 차이 (시간 - 시간 차이) / Duration -> LocalTime 형 변환