자바 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
블록 내에서 LocalDate
의 parse()
메서드를 호출합니다. 만약 입력된 문자열 형식이 잘못되면 DateTimeParseException
예외가 발생하고, catch
블록에서 해당 예외를 처리하고 “올바른 날짜 형식이 아닙니다.”라는 메시지를 출력합니다.
참고 자료
- Oracle Java Documentation - java.time.LocalDate
- Oracle Java Documentation - java.time.format.DateTimeFormatter