Класс ThaiBuddhistChronology
- Все реализованные интерфейсы:
Serializable, Comparable<Chronology>, Chronology
public final class ThaiBuddhistChronology extends AbstractChronology implements Serializable
Эта хронология определяет правила тайской буддийской календарной системы. Эта календарная система используется главным образом в Таиланде. Даты согласованы таким образом, что 2484-01-01 (Buddhist) — это 1941-01-01 (ISO).
Поля определены следующим образом:
- эра — существуют две эры: текущая «буддийская» (ERA_BE) и предыдущая эра (ERA_BEFORE_BE).
- год эры — в текущей эре год эры равномерно увеличивается, начиная с эпохи, когда его значение равно единице. В предыдущей эре значение года увеличивается от единицы по мере движения времени назад. Значение для текущей эры равно пролептическому году ISO плюс 543.
- пролептический год — пролептический год совпадает с годом эры для текущей эры. В предыдущей эре годы включают нулевое и отрицательные значения. Значение равно пролептическому году ISO плюс 543.
- месяц года — месяц года в тайском буддийском календаре точно соответствует ISO.
- день месяца — день месяца в тайском буддийском календаре точно соответствует ISO.
- день года — день года в тайском буддийском календаре точно соответствует ISO.
- високосный год — схема високосных лет в тайском буддийском календаре точно соответствует ISO, поэтому календари никогда не расходятся.
- Требования к реализации:
- Этот класс неизменяемый и потокобезопасный.
- С версии:
- 1.8
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final ThaiBuddhistChronology |
INSTANCE |
Экземпляр-синглтон буддийской хронологии. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ThaiBuddhistDate |
date |
Создает локальную дату в тайской буддийской календарной системе из полей «пролептический год», «месяц года» и «день месяца». |
ThaiBuddhistDate |
date |
Создает локальную дату в тайской буддийской календарной системе из полей «эра», «год эры», «месяц года» и «день месяца». |
ThaiBuddhistDate |
date |
Создает локальную дату в этой хронологии из другого объекта временной шкалы. |
ThaiBuddhistDate |
dateEpochDay |
Создает локальную дату в тайской буддийской календарной системе из дня эпохи. |
ThaiBuddhistDate |
dateNow() |
Получает текущую локальную дату в этой хронологии по системным часам в часовом поясе по умолчанию. |
ThaiBuddhistDate |
dateNow |
Получает текущую локальную дату в этой хронологии по указанным часам. |
ThaiBuddhistDate |
dateNow |
Получает текущую локальную дату в этой хронологии по системным часам в указанном часовом поясе. |
ThaiBuddhistDate |
dateYearDay |
Создает локальную дату в тайской буддийской календарной системе из полей «пролептический год» и «день года». |
ThaiBuddhistDate |
dateYearDay |
Создает локальную дату в тайской буддийской календарной системе из полей «эра», «год эры» и «день года». |
ThaiBuddhistEra |
eraOf |
Создает объект эры хронологии из числового значения. |
List |
eras() |
Возвращает список эр хронологии. |
String |
getCalendarType() |
Возвращает тип календаря базовой календарной системы — «buddhist». |
String |
getId() |
Возвращает идентификатор хронологии — «ThaiBuddhist». |
boolean |
isIsoBased() |
ThaiBuddhistChronology — это хронология на основе ISO, поддерживающая поля из IsoFields, такие как DAY_OF_QUARTER и QUARTER_OF_YEAR. |
boolean |
isLeapYear |
Проверяет, является ли указанный год високосным. |
ChronoLocalDateTime |
localDateTime |
Создает локальные дату и время в этой хронологии из другого объекта временной шкалы. |
int |
prolepticYear |
Вычисляет пролептический год по эре и году эры. |
ValueRange |
range |
Возвращает диапазон допустимых значений для указанного поля. |
ThaiBuddhistDate |
resolveDate |
Преобразует разобранные значения ChronoField в дату в процессе разбора. |
ChronoZonedDateTime |
zonedDateTime |
Создает ChronoZonedDateTime в этой хронологии из Instant. |
ChronoZonedDateTime |
zonedDateTime |
Создает ChronoZonedDateTime в этой хронологии из другого объекта временной шкалы. |
Методы, объявленные в классе AbstractChronology
compareTo, equals, hashCode, toString | Модификатор и тип | Метод | Описание |
|---|---|---|
int |
compareTo |
Сравнивает эту хронологию с другой хронологией. |
boolean |
equals |
Проверяет, равна ли эта хронология другой хронологии. |
int |
hashCode() |
Хеш-код этой хронологии. |
String |
toString() |
Представляет эту хронологию в виде String, используя идентификатор хронологии. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо истечения заданного промежутка реального времени. |
Методы, объявленные в интерфейсе Chronology
epochSecond, epochSecond, getDisplayName, period | Модификатор и тип | Метод | Описание |
|---|---|---|
default long |
epochSecond |
Возвращает количество секунд с начала эпохи 1970-01-01T00:00:00Z. |
default long |
epochSecond |
Возвращает количество секунд с начала эпохи 1970-01-01T00:00:00Z. |
default String |
getDisplayName |
Возвращает текстовое представление этой хронологии. |
default ChronoPeriod |
period |
Создает период для этой хронологии на основе лет, месяцев и дней. |
Подробное описание полей
INSTANCE
public static final ThaiBuddhistChronology INSTANCE
Подробное описание методов
getId
public String getId()
Идентификатор уникально определяет Chronology. С его помощью можно найти Chronology, используя Chronology.of(String).
- Указано в:
-
getIdв интерфейсеChronology - Возвращает:
- идентификатор хронологии — 'ThaiBuddhist'
- См. также:
getCalendarType
public String getCalendarType()
Тип календаря — это идентификатор, определённый спецификацией языка разметки данных локали Unicode (LDML). С его помощью можно найти Chronology, используя Chronology.of(String). Его также можно использовать как часть локали, доступную через Locale.getUnicodeLocaleType(String) с ключом 'ca'.
- Указано в:
-
getCalendarTypeв интерфейсеChronology - Возвращает:
- тип календарной системы — 'buddhist'
- См. также:
date
public ThaiBuddhistDate date(Era era, int yearOfEra, int month, int dayOfMonth)
- Указано в:
-
dateв интерфейсеChronology - Параметры:
-
era— эра тайского буддийского календаря, не null -
yearOfEra— год эры -
month— месяц года -
dayOfMonth— день месяца - Возвращает:
- местную дату тайского буддийского календаря, не null
- Вызывает исключение:
-
DateTimeException— если не удалось создать дату -
ClassCastException— еслиeraне являетсяThaiBuddhistEra
date
public ThaiBuddhistDate date(int prolepticYear, int month, int dayOfMonth)
- Указано в:
-
dateв интерфейсеChronology - Параметры:
-
prolepticYear— пролептический год -
month— месяц года -
dayOfMonth— день месяца - Возвращает:
- местную дату тайского буддийского календаря, не null
- Вызывает исключение:
-
DateTimeException— если не удалось создать дату
dateYearDay
public ThaiBuddhistDate dateYearDay(Era era, int yearOfEra, int dayOfYear)
- Указано в:
-
dateYearDayв интерфейсеChronology - Параметры:
-
era— эра тайского буддийского календаря, не null -
yearOfEra— год эры -
dayOfYear— день года - Возвращает:
- местную дату тайского буддийского календаря, не null
- Вызывает исключение:
-
DateTimeException— если не удалось создать дату -
ClassCastException— еслиeraне являетсяThaiBuddhistEra
dateYearDay
public ThaiBuddhistDate dateYearDay(int prolepticYear, int dayOfYear)
- Указано в:
-
dateYearDayв интерфейсеChronology - Параметры:
-
prolepticYear— пролептический год -
dayOfYear— день года - Возвращает:
- местную дату тайского буддийского календаря, не null
- Вызывает исключение:
-
DateTimeException— если не удалось создать дату
dateEpochDay
public ThaiBuddhistDate dateEpochDay(long epochDay)
- Указано в:
-
dateEpochDayв интерфейсеChronology - Параметры:
-
epochDay— день эпохи - Возвращает:
- местную дату тайского буддийского календаря, не null
- Вызывает исключение:
-
DateTimeException— если не удалось создать дату
dateNow
public ThaiBuddhistDate dateNow()
Chronology Для получения текущей даты выполняется запрос к system clock в часовом поясе по умолчанию.
Использование этого метода не позволяет применять альтернативные часы для тестирования, поскольку часы заданы жёстко.
- Указано в:
-
dateNowв интерфейсеChronology - Возвращает:
- текущую местную дату по системным часам и в часовом поясе по умолчанию, не null
dateNow
public ThaiBuddhistDate dateNow(ZoneId zone)
Chronology Для получения текущей даты выполняется запрос к system clock. Указание часового пояса позволяет избежать зависимости от часового пояса по умолчанию.
Использование этого метода не позволяет применять альтернативные часы для тестирования, поскольку часы заданы жёстко.
- Указано в:
-
dateNowв интерфейсеChronology - Параметры:
-
zone— идентификатор часового пояса, не null - Возвращает:
- текущую местную дату по системным часам, не null
dateNow
public ThaiBuddhistDate dateNow(Clock clock)
Chronology Для получения текущей даты выполняется запрос к указанным часам. Использование этого метода позволяет применять альтернативные часы для тестирования. Альтернативные часы можно создать с помощью dependency injection.
- Указано в:
-
dateNowв интерфейсеChronology - Параметры:
-
clock— используемые часы, не null - Возвращает:
- текущую местную дату, не null
date
public ThaiBuddhistDate date(TemporalAccessor temporal)
Chronology Этот метод получает дату в данной хронологии на основе указанного временного объекта. TemporalAccessor представляет произвольный набор сведений о дате и времени, который эта фабрика преобразует в экземпляр ChronoLocalDate.
При преобразовании обычно используется поле EPOCH_DAY, стандартизованное для всех календарных систем.
Сигнатура этого метода соответствует сигнатуре функционального интерфейса TemporalQuery, что позволяет использовать его в качестве запроса с помощью ссылки на метод aChronology::date.
- Указано в:
-
dateв интерфейсеChronology - Параметры:
-
temporal— преобразуемый временной объект, не null - Возвращает:
- местную дату в этой хронологии, не null
- См. также:
localDateTime
public ChronoLocalDateTime<ThaiBuddhistDate> localDateTime(TemporalAccessor temporal)
Chronology Этот метод получает дату и время в данной хронологии на основе указанного временного объекта. TemporalAccessor представляет произвольный набор сведений о дате и времени, который эта фабрика преобразует в экземпляр ChronoLocalDateTime.
При преобразовании извлекаются и объединяются ChronoLocalDate и LocalTime из временного объекта. Реализациям разрешено выполнять оптимизации, например обращаться к полям, эквивалентным соответствующим объектам. Результат использует эту хронологию.
Сигнатура этого метода соответствует сигнатуре функционального интерфейса TemporalQuery, что позволяет использовать его в качестве запроса с помощью ссылки на метод aChronology::localDateTime.
- Указано в:
-
localDateTimeв интерфейсеChronology - Параметры:
-
temporal— преобразуемый временной объект, не null - Возвращает:
- местные дату и время в этой хронологии, не null
- См. также:
zonedDateTime
public ChronoZonedDateTime<ThaiBuddhistDate> zonedDateTime(TemporalAccessor temporal)
ChronologyChronoZonedDateTime в этой хронологии из другого временного объекта. Этот метод получает дату и время с часовым поясом в данной хронологии на основе указанного временного объекта. TemporalAccessor представляет произвольный набор сведений о дате и времени, который эта фабрика преобразует в экземпляр ChronoZonedDateTime.
Сначала преобразование получает ZoneId из временного объекта, а при необходимости использует ZoneOffset. Затем оно пытается получить Instant, а при необходимости использует ChronoLocalDateTime. Результатом будет комбинация ZoneId или ZoneOffset с Instant или ChronoLocalDateTime. Реализациям разрешено выполнять оптимизации, например обращаться к полям, эквивалентным соответствующим объектам. Результат использует эту хронологию.
Сигнатура этого метода соответствует сигнатуре функционального интерфейса TemporalQuery, что позволяет использовать его в качестве запроса с помощью ссылки на метод aChronology::zonedDateTime.
- Указано в:
-
zonedDateTimeв интерфейсеChronology - Параметры:
-
temporal— преобразуемый временной объект, не null - Возвращает:
- дату и время с часовым поясом в этой хронологии, не null
- См. также:
zonedDateTime
public ChronoZonedDateTime<ThaiBuddhistDate> zonedDateTime(Instant instant, ZoneId zone)
ChronologyChronoZonedDateTime в этой хронологии из Instant. Этот метод получает дату и время с часовым поясом, соответствующие указанному моменту времени.
- Указано в:
-
zonedDateTimeв интерфейсеChronology - Параметры:
-
instant— момент времени, на основе которого создаются дата и время, не null -
zone— часовой пояс, не null - Возвращает:
- дату и время с часовым поясом, не null
isLeapYear
public boolean isLeapYear(long prolepticYear)
Високосные годы тайского буддийского календаря полностью совпадают с високосными годами ISO. Этот метод не проверяет переданное значение года и имеет определённый результат только для годов в поддерживаемом диапазоне.
- Указано в:
-
isLeapYearв интерфейсеChronology - Параметры:
-
prolepticYear— проверяемый пролептический год; диапазон не проверяется - Возвращает:
- true, если год является високосным
prolepticYear
public int prolepticYear(Era era, int yearOfEra)
ChronologyЭтот метод объединяет эру и год эры в одно поле пролептического года.
Если в хронологии активно используются эры, например JapaneseChronology, год эры проверяется на соответствие эре. Для других хронологий проверка необязательна.
- Указано в:
-
prolepticYearв интерфейсеChronology - Параметры:
-
era— эра правильного для хронологии типа, не null -
yearOfEra— год эры в этой хронологии - Возвращает:
- пролептический год
eraOf
public ThaiBuddhistEra eraOf(int eraValue)
ChronologyЭра — это, по существу, самое крупное деление временной шкалы. В большинстве календарных систем есть одна эпоха, разделяющая временную шкалу на две эры. Однако в некоторых системах эр несколько, например по одной для правления каждого лидера. Точное значение определяется хронологией с учётом следующих ограничений.
Эра, действующая на дату 1970-01-01, должна иметь значение 1. Более поздние эры должны иметь последовательно возрастающие значения. Более ранние эры должны иметь последовательно убывающие значения. Каждая хронология должна использовать перечисление или аналогичный объект-одиночку для предоставления значений эр.
Этот метод возвращает эру-одиночку правильного типа для указанного значения эры.
- Указано в:
-
eraOfв интерфейсеChronology - Параметры:
-
eraValue— значение эры - Возвращает:
- эру календарной системы, не null
eras
public List<Era> eras()
ChronologyВ большинстве календарных систем есть эра, в рамках которой имеет значение год. Если календарная система не поддерживает понятие эр, необходимо вернуть пустой список.
- Указано в:
-
erasв интерфейсеChronology - Возвращает:
- список эр данной хронологии; может быть неизменяемым, не null
range
public ValueRange range(ChronoField field)
Chronology Все поля можно выразить как целое число long. Этот метод возвращает объект, описывающий допустимый диапазон таких значений.
Обратите внимание, что результат описывает только минимальные и максимальные допустимые значения, и не следует делать на их основе излишних выводов. Например, внутри диапазона могут быть значения, недопустимые для данного поля.
Этот метод возвращает результат независимо от того, поддерживает ли хронология данное поле.
- Указано в:
-
rangeв интерфейсеChronology - Параметры:
-
field— поле, для которого нужно получить диапазон, не null - Возвращает:
- диапазон допустимых значений поля, не null
resolveDate
public ThaiBuddhistDate resolveDate(Map<TemporalField, Long> fieldValues, ResolverStyle resolverStyle)
AbstractChronologyChronoField в дату в процессе синтаксического анализа. Большинство реализаций TemporalField разрешаются с помощью метода resolve поля. Напротив, класс ChronoField определяет поля, смысл которых зависит только от хронологии. Поэтому поля даты ChronoField разрешаются здесь в контексте конкретной хронологии.
Экземпляры ChronoField разрешаются этим методом, который можно переопределить в подклассах.
-
EPOCH_DAY— если присутствует, преобразуется в дату, после чего все остальные поля даты сверяются с этой датой. -
PROLEPTIC_MONTH— если присутствует, разделяется наYEARиMONTH_OF_YEAR. В строгом и разумном режимах поле проверяется. -
YEAR_OF_ERAиERA— если присутствуют оба поля, они объединяются вYEAR. В нестрогом режиме диапазонYEAR_OF_ERAне проверяется, а в разумном и строгом режимах проверяется. ДиапазонERAпроверяется во всех трёх режимах. Если присутствует толькоYEAR_OF_ERA, а режим — разумный или нестрогий, предполагается последняя доступная эра. В строгом режиме эра не предполагается, аYEAR_OF_ERAостаётся без изменений. Если присутствует толькоERA, оно остаётся без изменений. -
YEAR,MONTH_OF_YEARиDAY_OF_MONTH— если присутствуют все три поля, они объединяются в дату. Во всех трёх режимах проверяетсяYEAR. В разумном и строгом режимах проверяются месяц и день. В нестрогом режиме дата формируется так, как если бы сначала создавалась дата первого дня первого месяца запрошенного года, затем добавлялась разница в месяцах и после этого разница в днях. Если режим разумный, а день месяца превышает максимальное значение для данного сочетания года и месяца, день месяца заменяется последним днём месяца. В строгом режиме эти три поля должны задавать допустимую дату. -
YEARиDAY_OF_YEAR— если присутствуют оба поля, они объединяются в дату. Во всех трёх режимах проверяетсяYEAR. В нестрогом режиме дата формируется так, как если бы сначала создавалась дата первого дня запрошенного года, а затем добавлялась разница в днях. В разумном и строгом режимах эти два поля должны задавать допустимую дату. -
YEAR,MONTH_OF_YEAR,ALIGNED_WEEK_OF_MONTHиALIGNED_DAY_OF_WEEK_IN_MONTH— если присутствуют все четыре поля, они объединяются в дату. Во всех трёх режимах проверяетсяYEAR. В нестрогом режиме дата формируется так, как если бы сначала создавалась дата первого дня первого месяца запрошенного года, затем добавлялась разница в месяцах, затем разница в неделях и, наконец, в днях. В разумном и строгом режимах все четыре поля проверяются на соответствие своим внешним диапазонам. Затем дата формируется так, как если бы сначала создавалась дата первого дня запрошенного года и месяца, а затем к ней добавлялось указанное количество недель и дней. В строгом режиме дополнительно проверяется, что корректировка дня и недели не изменила месяц. -
YEAR,MONTH_OF_YEAR,ALIGNED_WEEK_OF_MONTHиDAY_OF_WEEK— если присутствуют все четыре поля, они объединяются в дату. Используется тот же подход, что описан выше для годов, месяцев и недель вALIGNED_DAY_OF_WEEK_IN_MONTH. После обработки годов, месяцев и недель день недели корректируется на следующий или текущий соответствующий день недели. -
YEAR,ALIGNED_WEEK_OF_YEARиALIGNED_DAY_OF_WEEK_IN_YEAR— если присутствуют все три поля, они объединяются в дату. Во всех трёх режимах проверяетсяYEAR. В нестрогом режиме дата формируется так, как если бы сначала создавалась дата первого дня запрошенного года, затем добавлялась разница в неделях и после этого разница в днях. В разумном и строгом режимах все три поля проверяются на соответствие своим внешним диапазонам. Затем дата формируется так, как если бы сначала создавалась дата первого дня запрошенного года, а затем к ней добавлялось указанное количество недель и дней. В строгом режиме дополнительно проверяется, что корректировка дня и недели не изменила год. -
YEAR,ALIGNED_WEEK_OF_YEARиDAY_OF_WEEK— если присутствуют все три поля, они объединяются в дату. Используется тот же подход, что описан выше для годов и недель вALIGNED_DAY_OF_WEEK_IN_YEAR. После обработки годов и недель день недели корректируется на следующий или текущий соответствующий день недели.
Реализация по умолчанию подходит для большинства календарных систем. Если обнаружено ChronoField.YEAR_OF_ERA без ChronoField.ERA, используется последняя эра из Chronology.eras(). Реализация предполагает, что в неделе 7 дней, первый день месяца имеет значение 1, первый день года имеет значение 1, а первый день месяца и года всегда существует.
- Указано в:
-
resolveDateв интерфейсеChronology - Переопределено:
-
resolveDateв классеAbstractChronology - Параметры:
-
fieldValues— карта полей и значений, которую можно изменять, не null -
resolverStyle— запрошенный тип разрешения, не null - Возвращает:
- разрешённую дату или null, если данных недостаточно для создания даты
isIsoBased
public boolean isIsoBased()
ThaiBuddhistChronology — хронология, основанная на ISO и поддерживающая поля из IsoFields, такие как DAY_OF_QUARTER и QUARTER_OF_YEAR.- Указано в:
-
isIsoBasedв интерфейсеChronology - Возвращает:
true- С версии:
- 19
- См. также:
© 1993, 2025, 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.