[java] 자바 8부터 추가된 LocalDate 클래스의 활용 방법

자바 8에서는 날짜와 시간을 다루는 데 사용되는 새로운 API인 java.time 패키지가 도입되었습니다. 이 패키지에는 LocalDate 클래스가 포함되어 있으며, 날짜 정보를 다룰 수 있게 해줍니다. 이번 글에서는 LocalDate 클래스의 활용 방법을 알아보겠습니다.

1. LocalDate 클래스란?

LocalDate 클래스는 날짜 정보를 나타내는 불변(immutable) 클래스로, 연도, 월, 일을 나타내는 메서드를 제공합니다. 이 클래스를 사용하면 날짜의 연산, 비교, 포맷팅 등을 손쉽게 할 수 있습니다.

2. LocalDate 인스턴스 생성하기

LocalDate 클래스의 인스턴스를 생성하는 가장 간단한 방법은 정적 팩토리 메서드 now()를 사용하는 것입니다. 이 메서드는 현재 날짜를 반환합니다.

LocalDate currentDate = LocalDate.now();
System.out.println(currentDate);

또는 of() 메서드를 사용하여 특정 연도, 월, 일 값을 지정하여 인스턴스를 생성할 수도 있습니다.

LocalDate specificDate = LocalDate.of(2022, 3, 21);
System.out.println(specificDate);

3. LocalDate 연산하기

LocalDate 클래스를 사용하면 날짜 간의 연산을 쉽게 수행할 수 있습니다. 예를 들어, 특정 날짜에서 일정 기간을 추가하거나 뺄 수 있습니다.

LocalDate currentDate = LocalDate.now();
LocalDate futureDate = currentDate.plusDays(7); // 현재 날짜에서 7일을 더한 날짜
LocalDate pastDate = currentDate.minusWeeks(2); // 현재 날짜에서 2주를 뺀 날짜

System.out.println(futureDate);
System.out.println(pastDate);

4. LocalDate 비교하기

LocalDate 클래스는 날짜 간의 비교도 가능합니다. isEqual(), isBefore(), isAfter() 메서드를 사용하여 날짜를 비교할 수 있습니다.

LocalDate date1 = LocalDate.of(2022, 3, 21);
LocalDate date2 = LocalDate.of(2022, 3, 15);

System.out.println(date1.isEqual(date2)); // false
System.out.println(date1.isBefore(date2)); // false
System.out.println(date1.isAfter(date2)); // true

5. LocalDate 포맷팅하기

LocalDate 클래스는 format() 메서드를 사용하여 날짜를 원하는 형식으로 포맷할 수 있습니다.

LocalDate currentDate = LocalDate.now();
String formattedDate = currentDate.format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일"));

System.out.println(formattedDate);

마무리

이번 글에서는 자바 8부터 추가된 LocalDate 클래스의 활용 방법을 알아보았습니다. LocalDate 클래스는 날짜 정보를 쉽게 다룰 수 있는 강력한 기능을 제공하므로, 날짜와 관련된 작업을 할 때 꼭 기억해두면 좋습니다.

더 자세한 내용은 공식 문서를 참고해주세요.