Класс 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- квартал года -
YEAR- стандартный год ISO
Годы, основанные на неделях
Стандарт ISO-8601 изначально задумывался как формат обмена данными, определяя строковый формат дат и времени. Однако он также определяет альтернативный способ выражения даты, основанный на концепции года, основанного на неделях.Дата выражается с помощью трех полей:
-
DAY_OF_WEEK- стандартное поле, определяющее день недели от понедельника (1) до воскресенья (7) -
WEEK_OF_WEEK_BASED_YEAR- неделя в году, основанном на неделях -
WEEK_BASED_YEAR- год, основанный на неделях
Первая неделя года, основанного на неделях, — это первая неделя, начинающаяся в понедельник, в стандартном году ISO, который имеет как минимум 4 дня в новом году.
- Если 1 января — понедельник, то неделя 1 начинается 1 января
- Если 1 января — вторник, то неделя 1 начинается 31 декабря предыдущего стандартного года
- Если 1 января — среда, то неделя 1 начинается 30 декабря предыдущего стандартного года
- Если 1 января — четверг, то неделя 1 начинается 29 декабря предыдущего стандартного года
- Если 1 января — пятница, то неделя 1 начинается 4 января
- Если 1 января — суббота, то неделя 1 начинается 3 января
- Если 1 января — воскресенье, то неделя 1 начинается 2 января
Например:
| Дата | День недели | Значения полей |
|---|---|---|
| 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 TemporalField |
DAY_OF_QUARTER Поле, представляющее день квартала. |
static TemporalField |
QUARTER_OF_YEAR Поле, представляющее квартал года. |
static TemporalUnit |
QUARTER_YEARS Единица, представляющая понятие квартала. |
static TemporalField |
WEEK_BASED_YEAR Поле, представляющее год, основанный на неделях. |
static TemporalUnit |
WEEK_BASED_YEARS Единица, представляющая годы, основанные на неделях, для целей сложения и вычитания. |
static TemporalField |
WEEK_OF_WEEK_BASED_YEAR Поле, представляющее неделю в году, основанном на неделях. |
Методы
Методы, унаследованные от класса java.lang.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, игнорируя фактический диапазон на основе года и квартала. Если день квартала превышает фактический диапазон на один день, то полученная дата будет на один день позже. Если день квартала превышает фактический диапазон на два дня, то полученная дата будет на два дня позже.
В мягком режиме проверяется только год на соответствие диапазону допустимых значений. Полученная дата рассчитывается по следующему трехступенчатому подходу. Сначала создается дата 1 января в указанном году. Затем берётся квартал, вычитается единица, и добавляется количество кварталов к дате. Наконец, берётся день квартала, вычитается единица и добавляется количество дней к дате.
Эта единица — неизменяемый и потокобезопасный синглтон.
QUARTER_OF_YEAR
public static final TemporalField QUARTER_OF_YEAR
Поле, представляющее квартал года.
Это поле позволяет запросить и установить значение квартала года. Значения квартала года от 1 до 4.
Квартал года может быть рассчитан только при наличии месяца года.
На фазе разрешения при разборе дата может быть создана из года, квартала и дня квартала. См. DAY_OF_QUARTER для получения подробной информации.
Эта единица — неизменяемый и потокобезопасный синглтон.
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, то любые избыточные недели добавляются или вычитаются из полученной даты.
Эта единица — неизменяемый и потокобезопасный синглтон.
WEEK_BASED_YEAR
public static final TemporalField WEEK_BASED_YEAR
Поле, представляющее год, основанный на неделях.
Это поле позволяет запросить и установить значение года, основанного на неделях.
Диапазон поля соответствует LocalDate.MAX и LocalDate.MIN.
На фазе разрешения при разборе дата может быть создана из года, основанного на неделях, недели в году, основанном на неделях, и дня недели. См. WEEK_OF_WEEK_BASED_YEAR для получения подробной информации.
Эта единица — неизменяемый и потокобезопасный синглтон.
WEEK_BASED_YEARS
public static final TemporalUnit WEEK_BASED_YEARS
Единица, представляющая годы, основанные на неделях, для целей сложения и вычитания.
Это позволяет добавить или вычесть количество лет, основанных на неделях, из даты. Единица равна либо 52, либо 53 неделям. Примерная продолжительность года, основанного на неделях, такая же, как у стандартного года ISO в 365.2425 Days.
Правила сложения добавляют количество лет, основанных на неделях, к существующему значению поля года, основанного на неделях. Если полученный год, основанный на неделях, содержит только 52 недели, то дата будет в неделе 1 следующего года, основанного на неделях.
Эта единица — неизменяемый и потокобезопасный синглтон.
QUARTER_YEARS
public static final TemporalUnit QUARTER_YEARS
Единица, представляющая понятие квартала. Для календарной системы ISO она равна 3 месяцам. Примерная продолжительность квартала — одна четверть 365.2425 Days.
Эта единица — неизменяемый и потокобезопасный синглтон.
© 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.