[java] 자바 8 날짜와 시간 API에서 날짜 파싱하기

자바 8 버전부터는 java.time 패키지를 사용하여 강력하고 유연한 날짜와 시간 처리 기능을 제공합니다. 이 패키지를 사용하여 문자열로 표현된 날짜를 파싱하고 java.time.LocalDate 객체로 변환하는 방법을 알아보겠습니다.

java.time.LocalDate로 날짜 파싱하기

java.time.LocalDate 클래스는 날짜 정보를 나타내는 클래스로서, parse() 메서드를 사용하여 문자열을 LocalDate 객체로 파싱할 수 있습니다.

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        String dateString = "2022-12-31";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDate date = LocalDate.parse(dateString, formatter);

        System.out.println(date); // 출력: 2022-12-31
    }
}

위의 예제에서는 dateString 변수에 “2022-12-31” 문자열을 저장하고, DateTimeFormatter를 사용하여 “yyyy-MM-dd” 형식으로 지정합니다. 그리고 LocalDate.parse() 메서드를 호출하여 문자열을 날짜로 파싱한 다음 LocalDate 객체인 date에 저장합니다. System.out.println()을 사용하여 date 객체의 결과를 출력합니다.

위의 예제를 실행하면 “2022-12-31”이 콘솔에 출력될 것입니다.

예외 처리하기

날짜 파싱 시 입력 문자열의 형식이 지정한 형식과 다를 경우 DateTimeParseException 예외가 발생합니다. 이 때 예외를 처리해야 합니다.

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

public class Main {
    public static void main(String[] args) {
        String dateString = "2022/12/31";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

        try {
            LocalDate date = LocalDate.parse(dateString, formatter);
            System.out.println(date);
        } catch (DateTimeParseException e) {
            System.out.println("올바른 날짜 형식이 아닙니다.");
        }
    }
}

위의 예제에서는 dateString 변수에 “2022/12/31” 문자열을 저장하고, 형식이 “yyyy-MM-dd”인 DateTimeFormatter를 사용합니다. try-catch 블록 내에서 LocalDateparse() 메서드를 호출합니다. 만약 입력된 문자열 형식이 잘못되면 DateTimeParseException 예외가 발생하고, catch 블록에서 해당 예외를 처리하고 “올바른 날짜 형식이 아닙니다.”라는 메시지를 출력합니다.

참고 자료