
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 등 데이터 오브젝트를 설계할 때 많은 도움을 얻을 수 있다.
'Java' 카테고리의 다른 글
| [Java] NPE를 관리 할 수 있는 Optional 클래스에 대하여 (1) | 2024.04.23 |
|---|---|
| [Java] 자바 AtomicLong의 사용과 멀티 스레드 (0) | 2023.11.26 |
| [Java] NPE(NullPointerException)에 대하여(String NPE) (0) | 2023.09.29 |
| [Java]Map(HashMap)의 전체 데이터를 출력하는 방법 (0) | 2023.09.29 |
| [Java]자바 스트림(Stream API)과 for 그리고 배열(Array) 처리 (0) | 2023.09.28 |