Java - String을 파싱하여 LocalDate로 변환하는 방법

LocalDate와 DateTimeFormatter 라이브러리를 이용하면 문자로 된 날짜를 Date 객체로 변환할 수 있습니다. 스트링을 Date객체로 변환하면 날짜 계산 등 데이터를 처리하는데 편리합니다.

날짜 파싱하여 LocalDate 객체 생성

LocalDate.parse를 이용하면 문자를 파싱하여 LocalDate 객체를 생성할 수 있습니다.

아래 코드에서 DateTimeFormatter.ISO_DATE는 "yyyy-mm-dd"를 상수로 선언한 것입니다. 이 옵션을 사용하면 "yyyy-mm-dd" 형태의 스트링을 파싱할 수 있습니다.

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

public class Example {
    public static void main(String args[]) {
        String string = "2019-01-10";
        LocalDate date = LocalDate.parse(string, DateTimeFormatter.ISO_DATE);
        System.out.println(date);
    }
}

출력

2019-01-10

Format을 정의하여 날짜 파싱

날짜가 "2019년 01월 10일"같이 형식이 일반적이지 않은 경우, 패턴을 만들어 파싱하는데 사용할 수 있습니다.

아래 코드는 "yyyy년 MM월 dd일"패턴을 생성하여 문자를 파싱하는 예제입니다. LocalDate.format API를 사용하면 fommater 형태로 문자를 출력해줍니다.

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

public class Example {
    public static void main(String args[]) {
        String string = "2019년 01월 10일";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일");
        LocalDate date = LocalDate.parse(string, formatter);
        System.out.println(date);
        System.out.println(date.format(formatter));
    }
}

출력

2019-01-10
2019년 01월 10일

DateTimeFormatter에서 다음과 같은 패턴들을 사용할 수 있습니다.

패턴 예제
yyyy-MM-dd “2019-07-04”
dd-MMM-yyyy “04-July-2019”
dd/MM/yyyy “04/07/2019”
yyyy-MM-dd'T'HH:mm:ssZ “2019-07-04T12:30:30+0530”
h:mm a “12:00 PM”
yyyy년 MM월 dd일 "2019년 01월 10일"

정리

문자를 LocalData 객체로 변환하는 방법에 대해서 알아보았습니다. 일반적인 날짜는 상수로 정의되어있는 것을 사용하면 되고, 그렇지 않다면 Fomatter를 만들어서 파싱하면 됩니다.

Loading script...

Related Posts

codechachaCopyright ©2019 codechacha