날짜 형식 지정
스레드 안전하고 불변인 DateTimeFormatter로 날짜를 형식화합니다.
코드 비교
✕ Pre-Java 8
// Not thread-safe!
SimpleDateFormat sdf =
new SimpleDateFormat("yyyy-MM-dd");
String formatted = sdf.format(date);
// Must synchronize for concurrent use
✓ Java 8+
DateTimeFormatter fmt =
DateTimeFormatter.ofPattern(
"uuuu-MM-dd");
String formatted =
LocalDate.now().format(fmt);
// Thread-safe, immutable
이 코드에 문제가 있나요? 알려주세요.
모던 방식이 더 나은 이유
스레드 안전
동기화 없이 스레드 간에 포맷터를 공유합니다.
내장 형식
표준 형식을 위한 ISO_LOCAL_DATE, ISO_INSTANT 등.
불변
정적 final 상수로 안전하게 저장합니다.
이전 방식
SimpleDateFormat
모던 방식
DateTimeFormatter
JDK 버전
8
난이도
초급
JDK 지원
날짜 형식 지정
사용 가능
JDK 8 (2014년 3월) 이후 널리 사용 가능
동작 원리
DateTimeFormatter는 SimpleDateFormat과 달리 불변이고 스레드 안전합니다. 상수로 저장하고 공유할 수 있습니다. 일반적인 형식을 위한 ISO_LOCAL_DATE 같은 미리 정의된 포맷터도 사용할 수 있습니다.
관련 문서