DateFormatProvider
DateFormatProvider (DateFormat 서비스 제공자)
DateFormat 클래스의 구체적인 구현을 제공하는 서비스 제공자(service provider)를 위한 추상 클래스예요. 특정 로케일에 맞는 날짜·시간 포매터를 제공하고 싶을 때 이 클래스를 상속받아 구현해요.
본문
이 클래스는 java.text.spi 패키지의 SPI(서비스 제공자 인터페이스) 중 하나예요. ServiceLoader 메커니즘으로 등록하며, META-INF/services/java.text.spi.DateFormatProvider 파일에 구현 클래스를 나열해서 발견되게 해요.
public abstract class DateFormatProvider
extends LocaleServiceProvider
구현해야 할 핵심 메서드는 세 가지예요.
getDateInstance(int style, Locale loc)— 지정 스타일의 날짜 포매터getTimeInstance(int style, Locale loc)— 시간 포매터getDateTimeInstance(int dateStyle, int timeStyle, Locale loc)— 날짜·시간 포매터
style은 DateFormat.SHORT, MEDIUM, LONG, FULL 중 하나예요. 시스템 기본 DateFormat이 지원하지 않는 로케일을 추가로 지원하려면 LocaleServiceProvider.isSupportedLocale()을 오버라이드하고 위 메서드에서 실제 구현을 반환하면 돼요. 지원하지 않는 로케일이 요청되면 IllegalArgumentException이 던져져요.