개발/자바

LocalDate 주요 메서드 정리

피터JK 2025. 2. 19. 14:46
728x90

LocalDate는 Java 8에서 도입된 날짜를 표현하는 java.time 패키지의 클래스입니다. 이 클래스는 연-월-일 형식의 날짜를 나타내며, 시간 정보는 포함하지 않습니다.

📌 LocalDate 주요 메서드 정리


객체 생성 관련 메서드

메서드  설명  예제
now() 현재 시스템의 날짜를 반환 LocalDate.now()
of(year, month, dayOfMonth) 지정한 날짜로 객체 생성 LocalDate.of(2025, 2, 19)
ofYearDay(year, dayOfYear) 연도와 연중 날짜(1~365/366)로 객체 생성 LocalDate.ofYearDay(2025, 50)
parse(CharSequence text) 문자열을 LocalDate로 변환 (기본 ISO-8601 형식 yyyy-MM-dd) LocalDate.parse("2025-02-19")
parse(CharSequence text, DateTimeFormatter formatter) 사용자 지정 형식으로 문자열 변환 LocalDate.parse("19-02-2025", DateTimeFormatter.ofPattern("dd-MM-yyyy"))

날짜 정보 조회 메서드

메서드  설명  예제
getYear() 연도 반환 date.getYear() → 2025
getMonth() 월 반환 (Month enum) date.getMonth() → FEBRUARY
getMonthValue() 월 숫자(1~12) 반환 date.getMonthValue() → 2
getDayOfMonth() 해당 월의 일(1~31) 반환 date.getDayOfMonth() → 19
getDayOfWeek() 요일 반환 (DayOfWeek enum) date.getDayOfWeek() → WEDNESDAY
getDayOfYear() 해당 연도의 몇 번째 날인지 반환 (1~365/366) date.getDayOfYear() → 50
lengthOfMonth() 해당 월의 일 수(28~31) 반환 date.lengthOfMonth() → 29 (윤년)
lengthOfYear() 해당 연도의 일 수(365/366) 반환 date.lengthOfYear() → 366 (윤년)
isLeapYear() 윤년 여부 반환 date.isLeapYear() → true

날짜 연산 메서드

메서드  설명  예제
plusYears(n) n년 후 날짜 반환 date.plusYears(1) → 2026-02-19
plusMonths(n) n개월 후 날짜 반환 date.plusMonths(3) → 2025-05-19
plusWeeks(n) n주 후 날짜 반환 date.plusWeeks(2) → 2025-03-05
plusDays(n) n일 후 날짜 반환 date.plusDays(10) → 2025-02-29
minusYears(n) n년 전 날짜 반환 date.minusYears(1) → 2024-02-19
minusMonths(n) n개월 전 날짜 반환 date.minusMonths(3) → 2024-11-19
minusWeeks(n) n주 전 날짜 반환 date.minusWeeks(2) → 2025-02-05
minusDays(n) n일 전 날짜 반환 date.minusDays(10) → 2025-02-09

비교 및 검증 메서드

메서드  설명  예제
isBefore(otherDate) 현재 날짜가 otherDate보다 이전인지 date.isBefore(LocalDate.of(2025, 12, 31)) → true
isAfter(otherDate) 현재 날짜가 otherDate보다 이후인지 date.isAfter(LocalDate.of(2025, 1, 1)) → true
isEqual(otherDate) 두 날짜가 같은지 비교 date.isEqual(LocalDate.of(2025, 2, 19)) → true

특정 날짜로 변경하는 메서드

메서드  설명 예제 예제
withYear(n) 연도를 n으로 변경 date.withYear(2030) → 2030-02-19
withMonth(n) 월을 n으로 변경 date.withMonth(12) → 2025-12-19
withDayOfMonth(n) 일을 n으로 변경 date.withDayOfMonth(1) → 2025-02-01
withDayOfYear(n) 연중 날짜를 n으로 변경 date.withDayOfYear(365) → 2025-12-31

날짜 포맷 변환 메서드

메서드 설명 예제 설명 예제
format(DateTimeFormatter formatter) 날짜를 문자열로 변환 date.format(DateTimeFormatter.ofPattern("yyyy/MM/dd")) → "2025/02/19"

기간 계산 메서드

메서드 설명 예제

메서드 설명 예제 설명 예제
until(otherDate) 현재 날짜부터 otherDate까지의 기간 반환 date.until(LocalDate.of(2026, 2, 19)) → P1Y (1년)
until(otherDate, ChronoUnit.YEARS) 연 단위 차이 반환 date.until(LocalDate.of(2030, 2, 19), ChronoUnit.YEARS) → 5
until(otherDate, ChronoUnit.DAYS) 일 단위 차이 반환 date.until(LocalDate.of(2025, 2, 28), ChronoUnit.DAYS) → 9

기타 메서드

메서드 설명 예제 설명 예제
atStartOfDay() 해당 날짜의 자정 (00:00:00)을 포함한 LocalDateTime 반환 date.atStartOfDay() → 2025-02-19T00:00
atTime(LocalTime time) 특정 시간을 추가하여 LocalDateTime 반환 date.atTime(LocalTime.of(14, 30)) → 2025-02-19T14:30

📌 마무리

LocalDate는 날짜를 다루기에 최적화된 클래스이며, 위의 메서드들을 조합하면 다양한 날짜 연산이 가능합니다. 

728x90