Java 8은 날짜 및 시간 작업을 처리하기 위한 강력하고 유연한 API를 포함하는 패키지를 도입했습니다.

기존의 날짜 관련 클래스의 단점을 많이 보완 가능한 유용한 API입니다.

이 포스팅에서는 "LocalDateTime" 위주의 실습과, API에 대해 자세히 알아보고, 기능을 살펴봅니다.

"java.time"  "LocalDate" "LocalTime" "LocalDateTime"


1. LocalDateTime

LocalDateTime은 `java.time`패키지의 일부로 표준 시간대가 없는 날짜, 시간을 표현 할 수 있다.

2. 실습

2-1. LocalDateTime 생성 및 값 가져오기

//현재 날짜와 시간을 나타내는 개체
LocalDateTime currentDateTime = LocalDateTime.now();
//특정날짜(현재 블로그 작성 시간)로 만드는 개체
LocalDateTime specificDateTime = LocalDateTime.of(2023, 11, 26, 14, 30);
//직관적인 함수명으로 쉽게 값들을 얻어올 수 있다.
int year = date.getYear(); // 년도
Month month = date.getMonth(); // 월
int day = date.getDayOfMonth(); // 일

2-2. LocalDateTime의 시간 변경

//현재+7일+3시간
LocalDateTime futureDateTime = currentDateTime.plusDays(7).plusHours(3);
//현재-3개월-15분
LocalDateTime pastDateTime = currentDateTime.minusMonths(3).minusMinutes(15);

2-3. LocalDateTime의 포맷 변경 및 데이터 파싱

//yyyy-MM-dd HH:mm:ss형식의 포맷을 생성한다.
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//현재 시간을 포매팅한 문자열을 생성한다.
String formattedDateTime = currentDateTime.format(formatter);
//특정 날짜 문자열을 포매터를 사용하여 LocalDateTime으로 파싱한다.
LocalDateTime parsedDateTime = LocalDateTime.parse("2023-11-26 14:30:00", formatter);

3. 결론

개발자라면 유창한 영어 실력이 아니더라도 알 수 있을 정도의 쉬운 함수들로 실습을 해보았다.

이처럼 Java 8버전 이상의 패키지에서 날짜 및 시간 구성 요소를 다루기 쉽게 복잡도를 낮추었다.

'java.time'패키지를 조금만 이해한다면 유연하고 간단한 날짜 처리 및 VO, Entity 등 데이터 오브젝트를 설계할 때 많은 도움을 얻을 수 있다.

+ Recent posts