특정 시점의 날짜와 시간을 나노 초(ns) 단위로 표현하는 타임스탬프를 다루는 데 사용된다.
Period 클래스
두 날짜 사이의 차이를 표현
Duration 클래스
두 시각 사이의 차이를 표현
LocalDate와 LocalTime
java.time 패키지에 포함된 대부분의 클래스들은 이 두 클래스를 확장한 것이 많다.
날짜와 시간 객체의 생성
LocalDate와 LocalTime 클래스가 객체를 생성하기 위한 메소드
now() 메소드
현재의 날짜와 시간을 이용하여 새로운 객체를 생성하여 반환
of() 메소드
전달된 인수를 가지고 특정 날짜와 시간을 표현하는 새로운 객체를 생성하여 반환
사용 예시
LocalDatetoday=LocalDate.now();LocalTimepresent=LocalTime.now();System.out.println(today+" "+present);//static LocalDate of(int year, int month, int dayOfMonth)LocalDatebirthDay=LocalDate.of(1982,02,19);//static LocalTime of(int hour, int minute, int second, int nanoOfSecond)LocalTimebirthTime=LocalTime.of(02,02,00,100000000);System.out.println(birthDay+" "+birthTime);
날짜와 시간 객체에 접근하기
LocalDate
메소드
설명
int get(TemporalField field) long getLong(TemporalField field)
해당 날짜 객체의 명시된 필드의 값을 int형이나 long형으로 반환
int getYear()
해당 날짜 객체의 연도(YEAR) 필드의 값을 반환
Month getMonth()
해당 날짜 객체의 월(MONTH_OF_YEAR) 필드의 값을 Month 열거체를 이용하여 반환
int getMonthValue()
해당 날짜 객체의 월(MONTH_OF_YEAR) 필드의 값을 반환 (1~12)
int getDayOfMonth()
해당 날짜 객체의 일(DAY_OF_MONTH) 필드의 값을 반환 (1~31)
int getDayOfYear()
해당 날짜 객체의 일(DAY_OF_YEAR) 필드의 값을 반환 (1~365, 윤년이면 366)
DayOfWeek getDayOfWeek()
해당 날짜 객체의 요일(DAY_OF_WEEK) 필드의 값을 DayOfWeek 열거체를 이용하여 반환
LocalDatetoday=LocalDate.now();System.out.println("올해는 "+today.getYear()+"년입니다.");System.out.println("이번달은 "+today.getMonthValue()+"월입니다.");System.out.println("오늘은 "+today.getDayOfWeek()+"입니다.");System.out.println("오늘은 1년 중 "+today.get(ChronoField.DAY_OF_YEAR)+"일째 날입니다.");
LocalTime
메소드
설명
int get(TemporalField field) long getLong(TemporalField field)
LocalTimepresent=LocalTime.now();System.out.println("현재 시각은 "+present.get(ChronoField.HOUR_OF_DAY)+"시입니다.");LocalTimeotherTime=present.plus(2,ChronoUnit.HOURS);System.out.println("바뀐 시간은 "+otherTime.getHour()+"시입니다.");LocalTimeanotherTime=present.minus(6,ChronoUnit.HOURS);System.out.println("바뀐 시간은 "+anotherTime.getHour()+"시입니다.");
날짜와 시간 객체의 비교
LocalDate와 LocalTime 클래스에도 객체를 비교할 수 있는 compareTo() 메소드가 오버라이딩되어 있다.