Calendar
字段值的本地化字符串表示(显示名称)的服务提供者的抽象类。
日历类型用于指定getDisplayName
和getDisplayNames
方法提供日历字段值名称的日历系统。有关详细信息,请参见Calendar.getCalendarType()
。
日历字段
日历字段使用Calendar
中定义的常量来指定。以下是每个日历系统应支持的日历通用字段及其值。
字段 | 值 | 描述 |
---|---|---|
Calendar.MONTH |
Calendar.JANUARY 到 Calendar.UNDECIMBER |
月份编号是基于0的(例如,0 - 一月,...,11 - 十二月)。一些日历系统有13个月。如果支持的区域设置需要,月份名称需要在格式化和独立形式中都得到支持。如果两种形式没有区别,则应在这两种形式中返回相同的名称。 |
Calendar.DAY_OF_WEEK |
Calendar.SUNDAY 到 Calendar.SATURDAY |
星期几编号是从星期日开始的基于1的(即,1 - 星期日,...,7 - 星期六)。 |
Calendar.AM_PM |
Calendar.AM 到 Calendar.PM |
0 - 上午,1 - 下午 |
以下是应支持的特定日历字段及其值。
日历类型 | 字段 | 值 | 描述 |
---|---|---|---|
"gregory" |
Calendar.ERA |
0 | GregorianCalendar.BC (公元前) |
1 | GregorianCalendar.AD (公元) |
||
"buddhist" |
Calendar.ERA |
0 | 公元前(BCE) |
1 | 佛历(Buddhist Era) | ||
"japanese" |
Calendar.ERA |
0 | 西历(明治维新前) |
1 | 明治 | ||
2 | 大正 | ||
3 | 昭和 | ||
4 | 平成 | ||
5 | 令和 | ||
Calendar.YEAR |
1 | 每个纪元的第一年。当指定长样式(Calendar.LONG_FORMAT 或Calendar.LONG_STANDALONE )时应返回。另请参阅SimpleDateFormat 中的年份表示。 |
|
"roc" |
Calendar.ERA |
0 | 民国前 |
1 | 民国 | ||
"islamic" |
Calendar.ERA |
0 | 伊斯兰历前 |
1 | 伊斯兰历(AH) |
"gregory"
的日历字段值名称必须与DateFormatSymbolsProvider
提供的日期时间符号一致。
时区名称由TimeZoneNameProvider
支持。
- 自:
- 1.8
- 参见:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract String
getDisplayName
(String calendarType, int field, int value, int style, Locale locale) 返回给定style
和locale
中日历field value
的字符串表示(显示名称)。getDisplayNames
(String calendarType, int field, int style, Locale locale) 返回包含给定style
和locale
中所有Calendar
field
的所有字符串表示(显示名称)及其对应的字段值的Map
。Methods declared in class java.util.spi.LocaleServiceProvider
getAvailableLocales, isSupportedLocale
-
Constructor Details
-
CalendarNameProvider
protected CalendarNameProvider()唯一构造函数。(通常由子类构造函数隐式调用。)
-
-
Method Details
-
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
字段的值,例如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
- 参见:
-
getDisplayNames
public abstract Map<String,Integer> getDisplayNames(String calendarType, int field, int style, Locale locale) 返回一个包含给定style
和locale
中所有Calendar
field
的所有字符串表示(显示名称)及其相应字段值的Map
。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"代表星期日和星期六,窄名称可能不唯一,因此在这种情况下不包括窄名称。例如,以下调用将返回一个包含
"January"
到Calendar.JANUARY
、"Jan"
到Calendar.JANUARY
等的Map
。getDisplayNames("gregory", Calendar.MONTH, Calendar.ALL_STYLES, Locale.ENGLISH);
- 参数:
-
calendarType
- 日历类型。(忽略由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
- 所需的区域设置 - 返回值:
-
包含
field
在style
和locale
中的所有显示名称及其field
值的Map
,如果未为field
定义显示名称,则返回null
- 抛出:
-
NullPointerException
- 如果locale
为null
- 参见:
-