Java Date - 날짜와 시간을 문자열 파싱하고 포맷팅하기

포맷과 파싱에 대해 용어부터 알아보자

  • 포맷팅
    • 날짜와 시간 데이터를 원하는 포맷의 문자열로 변경하기
    • 예. Date 객체 -> String 객체
  • 파싱
    • 날짜의 문자열을 날짜와 시간 데이터로 변환하기
    • String 객체 -> Date 객체

Date 객체로 날짜 표기해보기

Date 객체를 만들어 날짜로 표기한다.

LocalDate date = LocalDate.of(2025,12,31);
System.out.println(date);
System.out.println(date.getYear() + "년 " + date.getMonthValue() + "월 " + date.getDayOfMonth() + "일");

2025-12-31
2025년 12월 31일

한글 날짜 표현에는 getYear(), getMonthValue() 등등 메소드를 사용하여 표현하였는데 포맷팅하여 쉽게 표현하는 방법이 있다.


DateTimeFormatter

// 포맷팅 Date 객체를 String 객체로
LocalDate date = LocalDate.of(2025,12,31);
System.out.println(date);

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일");
String strDate = date.format(formatter);
System.out.println(strDate);

2025-12-31
2025년 12월 31일

strDate 라는 문자열로 날짜를 표기해주는 것을 볼 수 있다.


LocalDate.parse - 패턴을 가져와 날짜 문자열을 파싱한다.

// 파싱 String 객체를 Date 객체로
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일");
String strDate = "2033년 11월 15일";
LocalDate parseDate = LocalDate.parse(strDate, formatter);
System.out.println("파싱한 문자열 출력: " + parseDate);

파싱한 문자열 출력: 2033-11-15


패턴 종류 살펴보기

오라클 공식 사이트에서 패턴 종류를 찾아 포맷터와 파싱 때 참고하도록 한다.

DateTimeFormatter (Java Platform SE 8 )

문자열 객체를 날짜 객체로 파싱

날짜 문자열을 읽어 Date 객체로 만드는 과정을 파싱이라 한다.
문자열의 어느 부분이 해이고 월과 일인지 각각의 위치가 정해져야 읽을 수 있다.

날짜 문자열(strDate)

2025년 12월 31일

LocalDate.parse(strDate, formatter) 사용하기 전에 DateTimeFormatter 사용한 모습을 볼 수 있는데. 해당 패턴의 틀을 가져와 2025년 12월 31일 문자열 값을 읽어 Date 객체로 변환하였다.


LocalDateTime - 날짜시간 객체를 String 객체로 포맷팅

// 포맷팅
// 날짜와 시간을 문자열 객체로 담기
LocalDateTime now = LocalDateTime.of(2025, 6, 24, 16, 42, 33);
System.out.println(now);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = now.format(formatter);
System.out.println(formattedDateTime);

2025-06-24T16:42:33
2025-06-24 16:42:33


LocalDateTime.parse - String 객체를 날짜시​간 객체로 파싱하기

// 파싱
// String 객체를 LocalDateTime 객체로 파싱하기
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String strDate = "2025-06-24 16:42:33";
LocalDateTime parse = LocalDateTime.parse(strDate, formatter);
System.out.println("파싱된 날짜: " + parse);

파싱된 날짜: 2025-06-24T16:42:33