Java - 문자열을 날짜로 변환 (String -> Date)

문자열을 파싱하여 날짜(Date)로 변환하는 방법을 소개합니다.

String을 Date로 변환 (1)

문자열 "2019-01-10"을 파싱하려면 "yyyy-MM-dd"와 같은 format의 DateTimeFormatter를 생성해야 합니다.

String string = "2019-01-10";

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.US);
LocalDate date = LocalDate.parse(string, formatter);

System.out.println(date);
System.out.println(formatter.format(date));

Output:

2019-01-10
2019-01-10

String을 Date로 변환 (2)

"2019년 01월 10일"을 Date로 변환하는 예제입니다.

String string = "2019년 01월 10일";

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일", Locale.US);
LocalDate date = LocalDate.parse(string, formatter);

System.out.println(date);
System.out.println(formatter.format(date));

Output:

2019-01-10
2019년 01월 10일

String을 Date로 변환 (3)

"10 Jan, 2019"을 Date로 변환하는 예제입니다.

String string = "10 Jan, 2019";

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMM, yyyy", Locale.US);
LocalDate date = LocalDate.parse(string, formatter);

System.out.println(date);
System.out.println(formatter.format(date));

Output:

2019-01-10
10 Jan, 2019

String을 Date로 변환 (4)

year가 없는 문자열 "10 Jan"을 Date로 변환하는 예제입니다.

위에서 소개한 방법으로 문자열을 파싱할 때, 문자열에 year가 없다면 파싱에 실패합니다.

DateTimeFormatterBuilder는 year가 없는 문자열을 파싱할 때, Fommater에 설정된 year로 Date를 생성합니다.

DateTimeFormatter formatter = new DateTimeFormatterBuilder()
        .appendPattern("dd MMM")
        .parseDefaulting(ChronoField.YEAR, 2019)
        .toFormatter(Locale.US);

String string = "10 Jan";
LocalDate date = LocalDate.parse(string, formatter);

System.out.println(date);
System.out.println(formatter.format(date));

Output:

2019-01-10
10 Jan

References

Loading script...

Related Posts

codechachaCopyright ©2019 codechacha