본문으로 건너뛰기
Advertisement

10.3 날짜/시간 포맷팅 (DateTimeFormatter)

날짜와 시간을 자바 내부에서 계산하는 것은 마쳤습니다. 이제 마지막 관문인 "사람이 읽기 쉬운 형태로 날짜 문자열을 만들거나, 반대로 문자열을 날짜 객체로 바꾸는 방법" 을 배워봅니다.

이를 위해 DateTimeFormatter 클래스를 사용합니다.

1. 날짜 객체 → 문자열 변환: format()

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

LocalDateTime now = LocalDateTime.now();

// 원하는 날짜 형식 패턴을 지정합니다
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 HH:mm:ss");

// LocalDateTime 객체를 지정한 포맷의 문자열로 변환
String formatted = now.format(formatter);
System.out.println(formatted); // 2026년 03월 13일 17:30:08

주요 패턴 문자 표

패턴의미예시
yyyy연도(4자리)2026
yy연도(2자리)26
MM월(2자리, 01~12)03
M월(12자리, 112)3
dd날짜(2자리, 01~31)07
d날짜(12자리, 131)7
HH시간(24시간제, 00~23)17
hh시간(12시간제, 01~12)05
mm분(00~59)30
ss초(00~59)08
E요일 약어
EEEE요일 전체 이름목요일

다양한 형태로 출력해보겠습니다:

LocalDateTime now = LocalDateTime.now();

// 미국식 날짜 표기
DateTimeFormatter us = DateTimeFormatter.ofPattern("MM/dd/yyyy");
System.out.println(now.format(us)); // 03/13/2026

// 한국식 날짜 + 요일 표기
DateTimeFormatter kr = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 (E)");
System.out.println(now.format(kr)); // 2026년 03월 13일 (목)

// ISO 8601 표준 형식 (API 통신에 자주 사용)
DateTimeFormatter iso = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
System.out.println(now.format(iso)); // 2026-03-13T17:30:08

2. 문자열 → 날짜 객체 변환: parse()

반대로, "2026-03-13" 같은 텍스트로 된 날짜 문자열을 LocalDate 객체로 변환 할 때는 parse() 메서드를 사용합니다. 웹 폼이나 API 등에서 날짜를 텍스트로 받아올 때 필수적으로 씁니다.

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

String dateString = "2026년 03월 13일";

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일");

// 문자열을 LocalDate 객체로 파싱
LocalDate parsedDate = LocalDate.parse(dateString, formatter);

System.out.println("파싱된 날짜: " + parsedDate); // 2026-03-13
System.out.println("연도: " + parsedDate.getYear()); // 2026
System.out.println("월: " + parsedDate.getMonthValue()); // 3
System.out.println("일: " + parsedDate.getDayOfMonth()); // 13

이것으로 자바에서 날짜와 시간을 다루는 핵심 기술을 모두 마스터했습니다!

  • LocalDate / LocalTime / LocalDateTime: 날짜/시간 객체 생성
  • Period / Duration: 날짜/시간 간격 계산
  • DateTimeFormatter: 날짜/시간 ↔ 문자열 변환

다음 Phase에서는 자바 컬렉션 프레임웍(List, Set, Map)을 배워보겠습니다!

Advertisement