- java.lang.Object
-
- java.util.spi.LocaleServiceProvider
-
- java.util.spi.CalendarNameProvider
-
public abstract class CalendarNameProvider extends LocaleServiceProvider
提供Calendar
字段值的本地化字符串表示(显示名称)的服务提供者的抽象类。日历类型用于指定
getDisplayName
和getDisplayNames
方法提供日历字段值名称的日历系统。 详见Calendar.getCalendarType()
。日历字段
日历字段由
Field values Field Value DescriptionCalendar
中定义的常量指定。 以下是日历常用字段及其每个日历系统支持的值。Calendar.MONTH
Calendar.JANUARY
toCalendar.UNDECIMBER
Month numbering is 0-based (e.g., 0 - January, ..., 11 - December). Some calendar systems have 13 months. Month names need to be supported in both the formatting and stand-alone forms if required by the supported locales. If there's no distinction in the two forms, the same names should be returned in both of the forms.Calendar.DAY_OF_WEEK
Calendar.SUNDAY
toCalendar.SATURDAY
Day-of-week numbering is 1-based starting from Sunday (i.e., 1 - Sunday, ..., 7 - Saturday).Calendar.AM_PM
Calendar.AM
toCalendar.PM
0 - AM, 1 - PM以下是日历特定的字段及其值将被支持。
Calendar type and field values Calendar Type Field Value Description"gregory"
Calendar.ERA
0GregorianCalendar.BC
(BCE) 1GregorianCalendar.AD
(CE)"buddhist"
Calendar.ERA
0 BC (BCE) 1 B.E. (Buddhist Era)"japanese"
Calendar.ERA
0 Seireki (Before Meiji) 1 Meiji 2 Taisho 3 Showa 4 HeiseiCalendar.YEAR
1 the first year in each era. It should be returned when a long style (Calendar.LONG_FORMAT
orCalendar.LONG_STANDALONE
) is specified. See also the Year representation inSimpleDateFormat
."roc"
Calendar.ERA
0 Before R.O.C. 1 R.O.C."islamic"
Calendar.ERA
0 Before AH 1 Anno Hijrah (AH)"gregory"
日历字段值名称必须与"gregory"
提供的日期时间符号一致 。时区名称由
TimeZoneNameProvider
支持。- 从以下版本开始:
- 1.8
- 另请参见:
-
CalendarDataProvider
,Locale.getUnicodeLocaleType(String)
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
CalendarNameProvider()
唯一的构造函数。
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 abstract String
getDisplayName(String calendarType, int field, int value, int style, Locale locale)
返回给定的style
和locale
中的日历field value
的字符串表示(显示名称)。abstract Map<String,Integer>
getDisplayNames(String calendarType, int field, int style, Locale locale)
返回Map
包含的所有字符串表示(显示名称)Calendar
field
给定style
和locale
及其相应的字段值。-
Methods inherited from class java.util.spi.LocaleServiceProvider
getAvailableLocales, isSupportedLocale
-
-
-
-
方法详细信息
-
getDisplayName
public abstract String getDisplayName(String calendarType, int field, int value, int style, Locale locale)
返回给定的style
和locale
中的日历field value
的字符串表示(显示名称)。 如果不适用字符串表示,则返回null
。field
是一个Calendar
字段索引,如Calendar.MONTH
。 此方法不支持时区字段Calendar.ZONE_OFFSET
和Calendar.DST_OFFSET
。 如果指定了任何时区字段,则必须返回null
。value
是field
值的数字表示。 例如,如果field
为Calendar.DAY_OF_WEEK
,则有效值为Calendar.SUNDAY
至Calendar.SATURDAY
(含)。style
给出了字符串表示形式。 它是一个Calendar.SHORT_FORMAT
(SHORT
),Calendar.SHORT_STANDALONE
,Calendar.LONG_FORMAT
(LONG
),Calendar.LONG_STANDALONE
,Calendar.NARROW_FORMAT
,或Calendar.NARROW_STANDALONE
。例如,以下调用将返回
"Sunday"
。getDisplayName("gregory", Calendar.DAY_OF_WEEK, Calendar.SUNDAY, Calendar.LONG_STANDALONE, Locale.ENGLISH);
- 参数
-
calendarType
- 日历类型。 (由locale
给出的任何日历类型都将被忽略。) -
field
-Calendar
字段索引,如Calendar.DAY_OF_WEEK
-
value
-该值Calendar field
,如Calendar.MONDAY
-
style
-字符串表示风格:之一Calendar.SHORT_FORMAT
(SHORT
),Calendar.SHORT_STANDALONE
,Calendar.LONG_FORMAT
(LONG
),Calendar.LONG_STANDALONE
,Calendar.NARROW_FORMAT
,或Calendar.NARROW_STANDALONE
-
locale
- 所需的语言环境 - 结果
-
所述的字符串表示
field value
,或null
如果字符串表示不适用,或给定日历类型是未知的 - 异常
-
IllegalArgumentException
- 如果field
或style
无效 -
NullPointerException
- 如果locale
是null
- 另请参见:
-
TimeZoneNameProvider
,Calendar.get(int)
,Calendar.getDisplayName(int, int, Locale)
-
getDisplayNames
public abstract Map<String,Integer> getDisplayNames(String calendarType, int field, int style, Locale locale)
返回Map
包含的所有字符串表示(显示名称)Calendar
field
给定style
和locale
及其相应的字段值。field
是一个Calendar
字段索引,如Calendar.MONTH
。 此方法不支持时区字段Calendar.ZONE_OFFSET
和Calendar.DST_OFFSET
。 如果指定了任何时区字段,则必须返回null
。style
给出了字符串表示形式。 它必须是一个Calendar.ALL_STYLES
,Calendar.SHORT_FORMAT
(SHORT
),Calendar.SHORT_STANDALONE
,Calendar.LONG_FORMAT
(LONG
),Calendar.LONG_STANDALONE
,Calendar.NARROW_FORMAT
,或Calendar.NARROW_STANDALONE
。 请注意,由于使用单个字符,例如星期日和星期六使用“S”,并且在该情况下不包括窄名称,因此狭义名称可能不是唯一的。例如,下面的调用将返回一个
Map
含"January"
至Calendar.JANUARY
,"Jan"
至Calendar.JANUARY
,"February"
至Calendar.FEBRUARY
,"Feb"
至Calendar.FEBRUARY
,等等。getDisplayNames("gregory", Calendar.MONTH, Calendar.ALL_STYLES, Locale.ENGLISH);
- 参数
-
calendarType
- 日历类型。 (由locale
给出的任何日历类型locale
被忽略。) -
field
- 显示名称返回的日历字段 -
style
- 应用于显示名称的样式; 之一Calendar.ALL_STYLES
,Calendar.SHORT_FORMAT
(SHORT
),Calendar.SHORT_STANDALONE
,Calendar.LONG_FORMAT
(LONG
),Calendar.LONG_STANDALONE
,Calendar.NARROW_FORMAT
,或Calendar.NARROW_STANDALONE
-
locale
- 所需的语言环境 - 结果
-
一个
Map
包含的所有显示名称field
在style
和locale
及其field
值,或者null
,如果没有显示名称为定义field
- 异常
-
NullPointerException
- 如果locale
是null
- 另请参见:
-
Calendar.getDisplayNames(int, int, Locale)
-
-