java.time
패키지
Joda Time 라이브러리를 발전시킨 자바8의 시간API
윤초 문제 해결
Calendar
의 불편한 월 표현 해결Mutalbe 객체가 아닌 임뮤터블 객체 제공
모든 메서드들은 새로운 객체를 생성하여 반환한다.
하위 패키지
java.time.chrono
ISO8601 표준 달력 이외의 달력 시스템을 제공
java.time.format
날짜와 시간 데이터를 문자열 형식화
java.time.temporal
날짜와 시간 연산에 도움을 주는 보조 클래스들
java.time.zone
타임 존과 관련된 기능
날짜와 시간 다루기
날짜 / 시간 / 날짜와 시간을 별도의 클래스로 다루게 된다.
LocalDate
클래스는 날짜 표현을 다룰 때
LocalTime
클래스 시간 표현을 다룰 때
LocalDateTime
클래스는 날짜와 시간 표현을 같이 다룰 때
생성 패턴
현재 날짜 및 시간
스태틱 메서드 now()
특정 시간 주입
스태틱 메서드 of(year: int, month: int, day: int)
of(hour: int, minute: int, second: int?, nonoSecond: int?)
특정 시간 필드값 획득
LocalDate
getYear()
getMonth(): Month
getMonthValue(): int
getDayOfMonth()
getDayOfYear()
getDayOfWeek(): DayOfWeek
get(:TemporalField)
get(:ChronoField)
get(:WeekFields)
LocalTime
메소드 | 설명 |
---|---|
int get(TemporalField field) long getLong(TemporalField field) |
해당 시간 객체의 명시된 필드의 값을 int형이나 long형으로 반환함. |
int getHour() | 해당 시간 객체의 시(HOUR_OF_DAY) 필드의 값을 반환함. |
int getMinute() | 해당 시간 객체의 분(MINUTE_OF_HOUR) 필드의 값을 반환함. |
int getSecond() | 해당 시간 객체의 초(SECOND_OF_MINUTE) 필드의 값을 반환함. |
int getNano() | 해당 시간 객체의 나노초(NANO_OF_SECOND) 필드의 값을 반환함. |
TemploralField 인터페이스
ChronoField
WeeksFields
시간 필드값 수정
with
계열 메서드를 사용해 해당 필드값 자체를 수정할 수 있다. 새로운 객체를 반환한다.
plus
, minus
계열을 사용해 현재 시각 객체를 기준으로 덧셈 뺄셈한 새로운 시각 객체를 만들 수 있다.
동등성, 크기 비교
a.compareTo(b)
Comparable 인터페이스 구현 메서드.
a.isBefore(b)
a.isEqual(b)