JAVA/Java Platform, Standard Edition

[공식 문서] 자바 날짜/시간 포맷(DateFormat) 변환 완벽 가이드

yebin0322 2025. 2. 10. 20:14
반응형

https://docs.oracle.com/javase/8/docs/api/java/text/DateFormat.html

java.text.DateFormat

  • 날짜와 시간을 특정 형식(Format)으로 변환하거나, 문자열을 날짜 객체(Date)로 변환(Parsing)하는 기능을 제공하는 추상 클래스
  • 날짜 -> 문자열, 문자열 -> 날짜 변환을 수행하는 클래스
  • 로케일(Locale)에 맞춰 자동으로 형식을 조정할 수 있음

사용 이유

  1. 언어 및 국가 설정(Locale)에 따라 자동으로 날짜 형식을 맞춤
  2. 날짜(Date) -> 문자열(String) 변환(Formatting)
  3. 문자열(String) -> 날짜(Date) 변환(Parsing)
  4. 시간대(TimeZone) 설정 가능
  5. 추상 클래스이므로 직접 객체를 생성하지 않고, 하위 클래스(SimpleDateFormat)를 사용하거나 getInstance() 메소드를 사용하야 함

Static Methods(정적 메소드)

메소드 설명
getDateInstance() 날짜만 변환
getTimeInstance() 시간만 변환
getDateTimeInstance() 날짜 + 시간 변환
getInstance() 기본 날짜 및 시간 변환

주의점

  • DateFormat은 멀티스레드 환경에서 안전하지 않음 -> 내부적으로 Calender와 NumberFormat을 공유(Shared State)하기 때문
  • 여러 스레드에서 동시에 사용할 경우 문제가 발생할 수 있음

DateFromat vs SimpleDateFormat

  • DateFormat은 추상 클래스라서 세부적인 포맷 지정이 불가능함
  • 특정 패턴을 사용하고 싶다면 SimpleDateFormat을 활용하는 것이 좋음
반응형