java.time 패키지

프로그래밍 언어/java8

2022. 02. 16.

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)