Класс ThaiBuddhistChronology
- Все реализуемые интерфейсы:
Serializable, Comparable<Chronology>, Chronology
public final class ThaiBuddhistChronology extends AbstractChronology implements Serializable
Эта хронология определяет правила буддийской календарной системы Таиланда. Эта календарная система используется преимущественно в Таиланде. Даты выровнены таким образом, что 2484-01-01 (Buddhist) — это 1941-01-01 (ISO).
Поля определены следующим образом:
- era — существуют две эры: текущая «буддийская» (ERA_BE) и предыдущая (ERA_BEFORE_BE).
- year-of-era — значение year-of-era для текущей эры равномерно увеличивается от начала отсчёта, начиная с единицы. Для предыдущей эры значение увеличивается от единицы по мере движения времени назад. Значение для текущей эры равно ISO proleptic-year плюс 543.
- proleptic-year — proleptic-year совпадает с year-of-era для текущей эры. Для предыдущей эры годы принимают нулевое, а затем отрицательные значения. Значение равно ISO proleptic-year плюс 543.
- month-of-year — месяц года в ThaiBuddhist полностью совпадает с ISO.
- day-of-month — день месяца в ThaiBuddhist полностью совпадает с ISO.
- day-of-year — день года в ThaiBuddhist полностью совпадает с ISO.
- leap-year — схема високосных лет в ThaiBuddhist полностью совпадает с ISO, поэтому эти два календаря никогда не расходятся.
- Требования к реализации:
- Этот класс является неизменяемым и потокобезопасным.
- С версии:
- 1.8
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final ThaiBuddhistChronology |
INSTANCE |
Единственный экземпляр буддийской хронологии. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ThaiBuddhistDate |
date |
Возвращает локальную дату в буддийской календарной системе Таиланда на основе полей proleptic-year, month-of-year и day-of-month. |
ThaiBuddhistDate |
date |
Возвращает локальную дату в буддийской календарной системе Таиланда на основе полей era, year-of-era, month-of-year и day-of-month. |
ThaiBuddhistDate |
date |
Возвращает локальную дату в этой хронологии на основе другого объекта, представляющего дату или время. |
ThaiBuddhistDate |
dateEpochDay |
Возвращает локальную дату в буддийской календарной системе Таиланда на основе epoch-day. |
ThaiBuddhistDate |
dateNow() |
Возвращает текущую локальную дату в этой хронологии по системным часам в часовом поясе по умолчанию. |
ThaiBuddhistDate |
dateNow |
Возвращает текущую локальную дату в этой хронологии по указанным часам. |
ThaiBuddhistDate |
dateNow |
Возвращает текущую локальную дату в этой хронологии по системным часам в указанном часовом поясе. |
ThaiBuddhistDate |
dateYearDay |
Возвращает локальную дату в буддийской календарной системе Таиланда на основе полей proleptic-year и day-of-year. |
ThaiBuddhistDate |
dateYearDay |
Возвращает локальную дату в буддийской календарной системе Таиланда на основе полей era, year-of-era и day-of-year. |
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 |
Вычисляет proleptic-year по эре и year-of-era. |
ValueRange |
range |
Возвращает диапазон допустимых значений для указанного поля. |
ThaiBuddhistDate |
resolveDate |
Преобразует разобранные значения ChronoField в дату в процессе разбора. |
ChronoZonedDateTime |
zonedDateTime |
Возвращает ChronoZonedDateTime в этой хронологии на основе Instant. |
ChronoZonedDateTime |
zonedDateTime |
Возвращает ChronoZonedDateTime в этой хронологии на основе другого объекта, представляющего дату или время. |
Методы, объявленные в классе AbstractChronology
compareTo, equals, hashCode, toString
Методы, объявленные в интерфейсе Chronology
epochSecond, epochSecond, getDisplayName, 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 обрабатываются с помощью метода разрешения поля. В отличие от них, класс 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/time/chrono/ThaiBuddhistChronology.html