Spec-Zone.ru › OpenJDK 25

Класс IsoFields

java.lang.Object
java.time.temporal.IsoFields
public final class IsoFields extends Object
Поля и единицы измерения, специфичные для календарной системы ISO-8601, включая квартал года и год-неделю.

Этот класс определяет поля и единицы измерения, специфичные для календарной системы ISO.

Квартал года

Стандарт ISO-8601 основан на стандартном гражданском календарном годе из 12 месяцев. Обычно он делится на четыре квартала, часто обозначаемых как Q1, Q2, Q3 и Q4.

Январь, февраль и март относятся к Q1. Апрель, май и июнь относятся к Q2. Июль, август и сентябрь относятся к Q3. Октябрь, ноябрь и декабрь относятся к Q4.

Полная дата выражается с помощью трех полей:

  • DAY_OF_QUARTER — день квартала, от 1 до 90, 91 или 92
  • QUARTER_OF_YEAR — квартал года, от 1 до 4
  • YEAR — стандартный год ISO

Годы-недели

Изначально стандарт ISO-8601 предназначался для обмена данными и определял строковый формат дат и времени. Однако он также определяет альтернативный способ представления даты, основанный на понятии года-недели.

Дата выражается с помощью трех полей:

  • DAY_OF_WEEK — стандартное поле, определяющее день недели: от понедельника (1) до воскресенья (7)
  • WEEK_OF_WEEK_BASED_YEAR — неделя в году-неделе
  • WEEK_BASED_YEAR — год-неделя
Сам год-неделя определяется относительно стандартного пролептического года ISO. Он отличается от стандартного года тем, что всегда начинается в понедельник.

Первая неделя года-недели — это первая неделя стандартного года ISO, начинающаяся в понедельник и содержащая не менее 4 дней нового года.

  • Если 1 января приходится на понедельник, неделя 1 начинается 1 января
  • Если 1 января приходится на вторник, неделя 1 начинается 31 декабря предыдущего стандартного года
  • Если 1 января приходится на среду, неделя 1 начинается 30 декабря предыдущего стандартного года
  • Если 1 января приходится на четверг, неделя 1 начинается 29 декабря предыдущего стандартного года
  • Если 1 января приходится на пятницу, неделя 1 начинается 4 января
  • Если 1 января приходится на субботу, неделя 1 начинается 3 января
  • Если 1 января приходится на воскресенье, неделя 1 начинается 2 января
В большинстве годов-недель 52 недели, однако иногда бывает 53 недели.

Например:

Примеры годов-недель
Дата День недели Значения полей
2008-12-28 воскресенье Неделя 52 года-недели 2008
2008-12-29 понедельник Неделя 1 года-недели 2009
2008-12-31 среда Неделя 1 года-недели 2009
2009-01-01 четверг Неделя 1 года-недели 2009
2009-01-04 воскресенье Неделя 1 года-недели 2009
2009-01-05 понедельник Неделя 2 года-недели 2009
Требования к реализации:

Этот класс неизменяемый и потокобезопасный.

Начиная с:
1.8

Краткое описание полей

Модификатор и тип Поле Описание
static final TemporalField DAY_OF_QUARTER
Поле, представляющее день квартала.
static final TemporalField QUARTER_OF_YEAR
Поле, представляющее квартал года.
static final TemporalUnit QUARTER_YEARS
Единица измерения, представляющая понятие квартала года.
static final TemporalField WEEK_BASED_YEAR
Поле, представляющее год-неделю.
static final TemporalUnit WEEK_BASED_YEARS
Единица измерения, представляющая годы-недели для операций сложения и вычитания.
static final TemporalField WEEK_OF_WEEK_BASED_YEAR
Поле, представляющее неделю года-недели.

Краткое описание методов

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

DAY_OF_QUARTER

public static final TemporalField DAY_OF_QUARTER
Поле, представляющее день квартала.

Это поле позволяет получать и задавать значение дня квартала. Значения дня квартала: от 1 до 90 в Q1 обычного года, от 1 до 91 в Q1 високосного года, от 1 до 91 в Q2 и от 1 до 92 в Q3 и Q4.

День квартала можно вычислить, только если доступны день года, месяц года и год.

При задании этого поля допускается частично нестрогое значение: любое значение от 1 до 92. Если в квартале меньше 92 дней, то день 92, а иногда и день 91, приходится на следующий квартал.

На этапе разрешения при разборе из года, квартала года и дня квартала можно создать дату.

В строгом режиме все три поля проверяются на соответствие диапазонам допустимых значений. Значение поля дня квартала проверяется в диапазоне от 1 до 90, 91 или 92 в зависимости от года и квартала.

В интеллектуальном режиме все три поля проверяются на соответствие диапазонам допустимых значений. Значение поля дня квартала проверяется в диапазоне от 1 до 92 без учета фактического диапазона для данного года и квартала. Если значение дня квартала превышает фактический диапазон на один день, результирующая дата будет на один день позже. Если значение дня квартала превышает фактический диапазон на два дня, результирующая дата будет на два дня позже.

В нестрогом режиме только год проверяется на соответствие диапазону допустимых значений. Результирующая дата вычисляется так же, как при следующем трехэтапном подходе. Сначала создается дата на первое января указанного года. Затем из квартала года вычитается единица, и полученное количество кварталов прибавляется к дате. Наконец, из дня квартала вычитается единица, и полученное количество дней прибавляется к дате.

Эта единица измерения представляет собой неизменяемый и потокобезопасный singleton.

QUARTER_OF_YEAR

public static final TemporalField QUARTER_OF_YEAR
Поле, представляющее квартал года.

Это поле позволяет получать и задавать значение квартала года. Значения квартала года находятся в диапазоне от 1 до 4.

Квартал года можно вычислить, только если доступен месяц года.

На этапе разрешения при разборе из года, квартала года и дня квартала можно создать дату. Подробности см. в описании DAY_OF_QUARTER.

Эта единица измерения представляет собой неизменяемый и потокобезопасный singleton.

WEEK_OF_WEEK_BASED_YEAR

public static final TemporalField WEEK_OF_WEEK_BASED_YEAR
Поле, представляющее неделю года-недели.

Это поле позволяет получать и задавать значение недели года-недели. Значения недели года-недели находятся в диапазоне от 1 до 52 или 53, если в году-неделе 53 недели.

На этапе разрешения при разборе из года-недели, недели года-недели и дня недели можно создать дату.

В строгом режиме все три поля проверяются на соответствие диапазонам допустимых значений. Значение поля недели года-недели проверяется в диапазоне от 1 до 52 или 53 в зависимости от года-недели.

В интеллектуальном режиме все три поля проверяются на соответствие диапазонам допустимых значений. Значение поля недели года-недели проверяется в диапазоне от 1 до 53 без учета года-недели. Если значение недели года-недели равно 53, но в году-неделе всего 52 недели, результирующая дата приходится на неделю 1 следующего года-недели.

В нестрогом режиме только год-неделя проверяется на соответствие диапазону допустимых значений. Если день недели выходит за пределы диапазона от 1 до 7, результирующая дата корректируется на подходящее количество недель, чтобы привести день недели к диапазону от 1 до 7. Если значение недели года-недели выходит за пределы диапазона от 1 до 52, все лишние недели прибавляются к результирующей дате или вычитаются из нее.

Эта единица измерения представляет собой неизменяемый и потокобезопасный singleton.

WEEK_BASED_YEAR

public static final TemporalField WEEK_BASED_YEAR
Поле, представляющее год-неделю.

Это поле позволяет получать и задавать значение года-недели.

Диапазон поля соответствует LocalDate.MAX и LocalDate.MIN.

На этапе разрешения при разборе из года-недели, недели года-недели и дня недели можно создать дату. Подробности см. в описании WEEK_OF_WEEK_BASED_YEAR.

Эта единица измерения представляет собой неизменяемый и потокобезопасный singleton.

WEEK_BASED_YEARS

public static final TemporalUnit WEEK_BASED_YEARS
Единица измерения, представляющая годы-недели для операций сложения и вычитания.

Она позволяет прибавлять к дате или вычитать из нее заданное количество лет-недель. Эта единица измерения равна 52 или 53 неделям. Расчетная продолжительность года-недели совпадает с продолжительностью стандартного года ISO при 365.2425 Days.

При сложении указанное количество лет-недель прибавляется к текущему значению поля года-недели. Если в получившемся году-неделе всего 52 недели, дата приходится на неделю 1 следующего года-недели.

Эта единица измерения представляет собой неизменяемый и потокобезопасный singleton.

QUARTER_YEARS

public static final TemporalUnit QUARTER_YEARS
Единица измерения, представляющая понятие квартала года. В календарной системе ISO она равна 3 месяцам. Расчетная продолжительность квартала года составляет одну четверть от 365.2425 Days.

Эта единица измерения представляет собой неизменяемый и потокобезопасный singleton.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, включая обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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/temporal/IsoFields.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API