자바 코드 - java.time 개념

폐쇄맨·2020년 12월 16일
0

자바 코드 모음

목록 보기
3/8

개요

Java 8 부터 java.time 패키지에서 Date and Time API를 제공한다. 해당 API는 ISO 8601이라는 날짜와 시간의 국제 규격에 맞춰져있고, 스레드 세이프하다.

Date and Time API의 주요 클래스

클래스 이름개요
LocalDate타임존을 갖지 않는 날짜를 표시2020-12-16
LocalDateTime타임존을 갖지 않는 일시를 표시2020-12-16T21:04:00
LocalTime타임존을 갖지 않는 시간을 표시21:04:00
OffsetDateTimeUTC의 시차를 가진 일시를 표시2020-12-16T21:04:00-09:00
OffsetTimeUTC의 시차를 가진 시간을 표시21:04:00-09:00
ZonedDateTime타임존을 가진 일시를 표시2020-12-16T12:04:00+01:00Europe/Paris
Duration기간을 시간으로 표시PT3600S
Perioid기간을 날짜로 표시P1Y2M3D

Joda Time

자바 8 이전에는 Joda Time 이라는 라이브러리를 사용하였으나, 8 이상은 java.time 패키지를 활용하는 것이 좋다. 자바 8 이전에는 사실상 표준이었으나, Joda Time 공식 홈페이지에서도 자바 8 이상은 java.time 으로 개발하는 것을 권장한다.

Immutable API

Date and Time API의 클래스는 모두 변하지 않는 클래스이다. java.util.Calendarset() 메서드나 add() 메서드 등을 사용하여 해당 인스턴스의 날짜를 변경할 수 있다. 하지만 java.time.LocalDateTimeplus() 메서드나 minus() 메서드로 날짜를 더하거나 뺄 수 있지만, 자신의 날짜를 바꾸지 않고 새로운 LocalDateTime 인스턴스를 생성하고 반환한다.

Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, 1);

LocalDateTime dateTime = LocalDateTime.now();
LocalDateTime result = dateTime.plusDays(1);

Immutable 클래스는 인스턴스가 생성되면 값이 바뀌지 않기 때문에 의도치 않은 수정에 의한 오류를 방지하여 코드의 안정성을 높일 수 있다.

profile
폐쇄맨

0개의 댓글