Класс CalendarNameProvider
- java.lang.Object
-
- java.util.spi.LocaleServiceProvider
-
- java.util.spi.CalendarNameProvider
public abstract class CalendarNameProvider extends LocaleServiceProvider
Абстрактный класс для поставщиков сервисов, предоставляющих локализованные строковые представления (отображаемые имена) значений полей 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 — AM, 1 — PM |
Ниже приведены поля, специфичные для календаря, и их значения, которые должны поддерживаться.
| Тип календаря | Поле | Значение | Описание |
|---|---|---|---|
"gregory" | Calendar.ERA | 0 |
GregorianCalendar.BC (до н. э.) |
| 1 |
GregorianCalendar.AD (н. э.) | ||
"buddhist" | Calendar.ERA | 0 | до н. э. (до н. э.) |
| 1 | БЭ (буддийская эра) | ||
"japanese" | Calendar.ERA | 0 | Сеирёки (до Мэйдзи) |
| 1 | Мэйдзи | ||
| 2 | Тайсё | ||
| 3 | Сёва | ||
| 4 | Хэйсэй | ||
Calendar.YEAR | 1 | первый год каждой эры. Он должен возвращаться, когда указан длинный стиль (Calendar.LONG_FORMAT или Calendar.LONG_STANDALONE). См. также представление года в SimpleDateFormat. | |
"roc" | Calendar.ERA | 0 | До Р.О.Ц. |
| 1 | Р.О.Ц. | ||
"islamic" | Calendar.ERA | 0 | До AH |
| 1 | Хиджра (AH) |
Имена значений полей календаря для "gregory" должны быть согласованы со знаками даты и времени, предоставленными DateFormatSymbolsProvider.
Имена часовых поясов поддерживаются TimeZoneNameProvider.
- С момента:
- 1.8
- См. также:
-
CalendarDataProvider,Locale.getUnicodeLocaleType(String)
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | CalendarNameProvider() | Единственный конструктор. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract String | getDisplayName(String calendarType,
int field,
int value,
int style,
Locale locale) | Возвращает строковое представление (отображаемое имя) календаря |
abstract Map<String,Integer> | getDisplayNames(String calendarType,
int field,
int style,
Locale locale) | Возвращает |
Методы, объявленные в классе java.util.spi.LocaleServiceProvider
getAvailableLocales, isSupportedLocale Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
CalendarNameProvider
protected CalendarNameProvider()
Единственный конструктор. (Для вызова подклассами, обычно неявный.)
Методы
getDisplayName
public abstract String getDisplayName(String calendarType,
int field,
int value,
int style,
Locale locale) Возвращает строковое представление (отображаемое имя) календаря field value в заданном style и locale. Если такое строковое представление не применимо, возвращается 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. Обратите внимание, что имена с узким форматом могут не быть уникальными из-за использования одиночных символов, таких как "В" для воскресенья и субботы, и в этом случае никакие имена с узким форматом не включены.
Например, следующий вызов вернёт Map, содержащий "January" по Calendar.JANUARY, "Jan" по Calendar.JANUARY, "February" по Calendar.FEBRUARY, "Feb" по Calendar.FEBRUARY и так далее.
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— желаемый регион - Возвращает:
Mapсодержащий все отображаемые именаfieldвstyleиlocaleи ихfieldзначения, илиnull, если дляfieldотображаемых имен не определено- Исключения:
-
NullPointerException— еслиlocale—null - См. также:
Calendar.getDisplayNames(int, int, Locale)
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/spi/CalendarNameProvider.html