Spec-Zone.ru › OpenJDK 21

Класс Year

java.lang.Object
java.time.Year
Все реализуемые интерфейсы:
Serializable, Comparable<Year>, Temporal, TemporalAccessor, TemporalAdjuster
public final class Year extends Object implements Temporal, TemporalAdjuster, Comparable<Year>, Serializable
Год в системе календаря ISO-8601, например 2007.

Year — это неизменяемый объект даты и времени, представляющий год. Любой поле, который можно вывести из года, может быть получен.

Обратите внимание, что годы в ISO-хронологии совпадают с годами в григорианско-юлианской системе только для современных годов. Части России не перешли на современные правила Григорианского/ISO до 1920 года. Поэтому с историческими годами нужно быть осторожными.

Этот класс не хранит и не представляет месяц, день, время или часовой пояс. Например, значение "2007" можно хранить в Year.

Годы, представленные этим классом, соответствуют стандарту ISO-8601 и используют пролептическую систему нумерации. Год 1 предшествует году 0, затем году -1.

Система календаря ISO-8601 — это современная гражданская система календаря, используемая сегодня в большинстве стран мира. Она эквивалентна пролептической григорианской календарной системе, в которой сегодняшние правила високосных лет применяются для всех времен. Для большинства современных приложений правила ISO-8601 полностью подходят. Однако любое приложение, использующее исторические даты и требующее их точности, обнаружит, что подход ISO-8601 не подходит.

Это классический класс; программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, иначе могут возникнуть непредсказуемые последствия. Например, в будущих версиях синхронизация может не работать. Для сравнений следует использовать метод equals.

Требования к реализации:
Этот класс неизменяемый и потокобезопасный.
С:
1.8
См. также:
  • Сериализованная форма

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

Модификатор и тип Поле Описание
static final int MAX_VALUE
Максимальный поддерживаемый год, '+999,999,999'.
static final int MIN_VALUE
Минимальный поддерживаемый год, '-999,999,999'.

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

Модификатор и тип Метод Описание
Temporal adjustInto(Temporal temporal)
Настраивает указанный временной объект для того, чтобы иметь этот год.
LocalDate atDay(int dayOfYear)
Объединяет этот год с днем года для создания LocalDate.
YearMonth atMonth(int month)
Объединяет этот год с месяцем для создания YearMonth.
YearMonth atMonth(Month month)
Объединяет этот год с месяцем для создания YearMonth.
LocalDate atMonthDay(MonthDay monthDay)
Объединяет этот год с днем месяца для создания LocalDate.
int compareTo(Year other)
Сравнивает этот год с другим годом.
boolean equals(Object obj)
Проверяет, равен ли этот год другому году.
String format(DateTimeFormatter formatter)
Форматирует этот год с помощью указанного форматировщика.
static Year from(TemporalAccessor temporal)
Получает экземпляр Year из временного объекта.
int get(TemporalField field)
Возвращает значение указанного поля из этого года в виде int.
long getLong(TemporalField field)
Возвращает значение указанного поля из этого года в виде long.
int getValue()
Возвращает значение года.
int hashCode()
Хеш-код для этого года.
boolean isAfter(Year other)
Проверяет, предшествует ли этот год указанному году.
boolean isBefore(Year other)
Проверяет, следует ли этот год за указанным годом.
boolean isLeap()
Проверяет, является ли год високосным годом в соответствии с правилами пролептической календарной системы ISO.
static boolean isLeap(long year)
Проверяет, является ли год високосным годом в соответствии с правилами пролептической календарной системы ISO.
boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанная единица.
boolean isValidMonthDay(MonthDay monthDay)
Проверяет, является ли день месяца допустимым для этого года.
int length()
Возвращает длину этого года в днях.
Year minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этого года, от которой вычитано указанное количество.
Year minus(TemporalAmount amountToSubtract)
Возвращает копию этого года, от которой вычитано указанное количество.
Year minusYears(long yearsToSubtract)
Возвращает копию этого Year с вычетом указанного количества лет.
static Year now()
Получает текущий год из системных часов в часовом поясе по умолчанию.
static Year now(Clock clock)
Получает текущий год из указанных часов.
static Year now(ZoneId zone)
Получает текущий год из системных часов в указанном часовом поясе.
static Year of(int isoYear)
Возвращает экземпляр Year.
static Year parse(CharSequence text)
Возвращает экземпляр Year из текстовой строки, например 2007.
static Year parse(CharSequence text, DateTimeFormatter formatter)
Возвращает экземпляр Year из текстовой строки с помощью определенного форматировщика.
Year plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этого года, к которой добавлено указанное количество.
Year plus(TemporalAmount amountToAdd)
Возвращает копию этого года, к которой добавлено указанное количество.
Year plusYears(long yearsToAdd)
Возвращает копию этого Year с добавлением указанного количества лет.
<R> R query(TemporalQuery<R> query)
Запрашивает этот год с помощью указанного запроса.
ValueRange range(TemporalField field)
Возвращает диапазон допустимых значений для указанного поля.
String toString()
Выводит этот год как String.
long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет количество времени до другого года в терминах указанной единицы.
Year with(TemporalAdjuster adjuster)
Возвращает скорректированную копию этого года.
Year with(TemporalField field, long newValue)
Возвращает копию этого года с указанным полем, установленным на новое значение.

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

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

MIN_VALUE

public static final int MIN_VALUE
Минимальный поддерживаемый год, '-999,999,999'.
См. также:
  • Значения константных полей

MAX_VALUE

public static final int MAX_VALUE
Максимальный поддерживаемый год, '+999,999,999'.
См. также:
  • Значения константных полей

Подробное описание методов

now

public static Year now()
Получает текущий год из системных часов в часовом поясе по умолчанию.

Это запросит system clock в часовом поясе по умолчанию для получения текущего года.

Использование этого метода предотвратит возможность использования альтернативных часов для тестирования, так как часы жестко закодированы.

Возвращает:
текущий год, используя системные часы и часовой пояс по умолчанию, не null

now

public static Year now(ZoneId zone)
Получает текущий год из системных часов в указанном часовом поясе.

Это запросит system clock для получения текущего года. Указание часового пояса позволяет избежать зависимости от часового пояса по умолчанию.

Использование этого метода предотвратит возможность использования альтернативных часов для тестирования, так как часы жестко закодированы.

Параметры:
zone - идентификатор часового пояса для использования, не null
Возвращает:
текущий год, используя системные часы, не null

now

public static Year now(Clock clock)
Получает текущий год из указанных часов.

Это запросит указанные часы для получения текущего года. Использование этого метода позволяет использовать альтернативные часы для тестирования. Альтернативные часы могут быть введены с помощью dependency injection.

Параметры:
clock - часы для использования, не null
Возвращает:
текущий год, не null

of

public static Year of(int isoYear)
Получает экземпляр Year.

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

Год 2 AD/CE представлен как 2.
Год 1 AD/CE представлен как 1.
Год 1 BC/BCE представлен как 0.
Год 2 BC/BCE представлен как -1.

Параметры:
isoYear - год ISO пролептической системы для представления, от MIN_VALUE до MAX_VALUE
Возвращает:
год, не null
Исключения:
DateTimeException - если поле некорректно

from

public static Year from(TemporalAccessor temporal)
Получает экземпляр Year из временного объекта.

Это получает год на основе указанного временного объекта. TemporalAccessor представляет собой произвольный набор информации о дате и времени, которую этот фабричный метод преобразует в экземпляр Year.

Преобразование извлекает поле year. Извлечение разрешено только если временной объект имеет хронологию ISO или может быть преобразован в LocalDate.

Этот метод соответствует сигнатуре функционального интерфейса TemporalQuery, позволяя использовать его в качестве запроса с помощью ссылки на метод, Year::from.

Параметры:
temporal - временной объект для преобразования, не null
Возвращает:
год, не null
Исключения:
DateTimeException - если невозможно преобразовать во Year

parse

public static Year parse(CharSequence text)
Получает экземпляр Year из текстовой строки, такой как 2007.

Строка должна представлять действительный год.

Параметры:
text - текст для парсинга, например "2007", не null
Возвращает:
разложенный год, не null
Исключения:
DateTimeParseException - если текст невозможно обработать

parse

public static Year parse(CharSequence text, DateTimeFormatter formatter)
Получает экземпляр Year из текстовой строки с использованием определённого форматера.

Текст разбирается с помощью форматера, возвращая год.

Параметры:
text - текст для парсинга, не null
formatter - форматер для использования, не null
Возвращает:
разложенный год, не null
Исключения:
DateTimeParseException - если текст невозможно обработать

isLeap

public static boolean isLeap(long year)
Проверяет, является ли год високосным, согласно правилам пролептической системы календаря ISO.

Этот метод применяет текущие правила для високосных лет на всей временной шкале. В общем случае, год является високосным, если он делится на четыре без остатка. Однако годы, делящиеся на 100, не являются високосами, за исключением годов, делящихся на 400, которые являются.

Например, 1904 - високосный год, так как делится на 4. 1900 не был високосным, так как делится на 100, однако 2000 был високосным, так как делится на 400.

Вычисление является пролептическим - применяя одни и те же правила в далёком будущем и далёком прошлом. Это исторически неточно, но верно для стандарта ISO-8601.

Параметры:
year - год для проверки
Возвращает:
true, если год високосный, иначе false

getValue

public int getValue()
Получает значение года.

Год, возвращаемый этим методом, является пролептическим в соответствии с get(YEAR).

Возвращает:
год, от MIN_VALUE до MAX_VALUE

isSupported

public boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.

Это проверяет, может ли этот год быть запрошен для указанного поля. Если ложь, то вызов методов range, get и with(TemporalField, long) выбросит исключение.

Если поле является ChronoField, то запрос выполняется здесь. Поддерживаемые поля:

  • YEAR_OF_ERA
  • YEAR
  • ERA
Все остальные экземпляры ChronoField вернут false.

Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.isSupportedBy(TemporalAccessor) со значением this в качестве аргумента. Поддерживается ли поле, определяется этим полем.

Определено в:
isSupported в интерфейсе TemporalAccessor
Параметры:
field - поле для проверки, null возвращает false
Возвращает:
true, если поле поддерживается в этом году, иначе false

isSupported

public boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанная единица измерения.

Это проверяет, может ли к этому году быть добавлена или отнята указанная единица. Если ложь, то вызов методов plus(long, TemporalUnit) и minus выбросит исключение.

Если единица является ChronoUnit, то запрос выполняется здесь. Поддерживаемые единицы:

  • YEARS
  • DECADES
  • CENTURIES
  • MILLENNIA
  • ERAS
Все остальные экземпляры ChronoUnit вернут false.

Если единица не является ChronoUnit, то результат этого метода получается путём вызова TemporalUnit.isSupportedBy(Temporal) со значением this в качестве аргумента. Поддерживается ли единица, определяется этой единицей.

Определено в:
isSupported в интерфейсе Temporal
Параметры:
unit - единица для проверки, null возвращает false
Возвращает:
true, если единица может быть добавлена/вычтена, иначе false

Диапазон

public ValueRange range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.

Объект диапазона выражает минимальное и максимальное допустимые значения для поля. Этот год используется для повышения точности возвращаемого диапазона. Если получение диапазона невозможно, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.

Если поле является ChronoField, то запрос реализуется здесь. supported fields вернёт соответствующие экземпляры диапазона. Все другие ChronoField экземпляры будут выбрасывать UnsupportedTemporalTypeException.

Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.rangeRefinedBy(TemporalAccessor) с this в качестве аргумента. Возможность получения диапазона определяется полем.

Указано в:
range в интерфейсе TemporalAccessor
Параметры:
field - поле, для которого требуется получить диапазон, не null
Возвращает:
диапазон допустимых значений для поля, не null
Выбрасывает:
DateTimeException - если диапазон для поля получить невозможно
UnsupportedTemporalTypeException - если поле не поддерживается

Получить

public int get(TemporalField field)
Получает значение указанного поля из этого года как int.

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

Если поле является ChronoField, то запрос реализуется здесь. supported fields вернёт допустимые значения, основанные на этом году. Все другие ChronoField экземпляры будут выбрасывать UnsupportedTemporalTypeException.

Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.getFrom(TemporalAccessor) с this в качестве аргумента. Возможность получения значения и его представление определяются полем.

Указано в:
get в интерфейсе TemporalAccessor
Параметры:
field - поле для получения, не null
Возвращает:
значение для поля
Выбрасывает:
DateTimeException - если значение для поля получить невозможно или значение находится вне допустимого диапазона значений для поля
UnsupportedTemporalTypeException - если поле не поддерживается или диапазон значений превышает int
ArithmeticException - если происходит переполнение при вычислениях

getLong

public long getLong(TemporalField field)
Получает значение указанного поля из этого года как long.

Это запрос к этому году для получения значения указанного поля. Если получение значения невозможно, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.

Если поле является ChronoField, то запрос реализуется здесь. supported fields вернёт допустимые значения, основанные на этом году. Все другие ChronoField экземпляры будут выбрасывать UnsupportedTemporalTypeException.

Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.getFrom(TemporalAccessor) с this в качестве аргумента. Возможность получения значения и его представление определяются полем.

Указано в:
getLong в интерфейсе TemporalAccessor
Параметры:
field - поле для получения, не null
Возвращает:
значение для поля
Выбрасывает:
DateTimeException - если значение для поля получить невозможно
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - если происходит переполнение при вычислениях

являетсяЛиВысокосным

public boolean isLeap()
Проверяет, является ли год високосным годом, согласно правилам пролептической календарной системы ISO.

Этот метод применяет текущие правила високосных годов на всей временной оси. В общем случае год является високосным, если он делится на четыре без остатка. Однако годы, делящиеся на 100, не являются високосным, за исключением годов, делящихся на 400, которые являются високосным.

Например, 1904 год является високосным, так как он делится на 4. 1900 год не был високосным, так как он делится на 100, однако 2000 год был високосным, так как он делится на 400.

Вычисление является пролептическим — применяя одни и те же правила в далёком будущем и прошлом. Это исторически неточно, но соответствует стандарту ISO-8601.

Возвращает:
true, если год високосный, false в противном случае

являетсяЛиДействительнымМесяцДень

public boolean isValidMonthDay(MonthDay monthDay)
Проверяет, является ли месяц-день допустимым для этого года.

Этот метод проверяет, образуют ли этот год, введённый месяц и день допустимую дату.

Параметры:
monthDay - месяц-день для проверки, null возвращает false
Возвращает:
true, если месяц и день допустимы для этого года

длина

public int length()
Получает длину этого года в днях.
Возвращает:
длину этого года в днях, 365 или 366

с

public Year with(TemporalAdjuster adjuster)
Возвращает скопированную и скорректированную копию этого года.

Это возвращает Year, основанный на этом, с откорректированным годом. Коррекция выполняется с использованием указанного стратегического объекта корректировки. Обратитесь к документации корректировщика, чтобы понять, какая коррекция будет выполнена.

Результат этого метода получается путём вызова метода TemporalAdjuster.adjustInto(Temporal) на указанном корректировщике, передавая this в качестве аргумента.

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

Указано в:
with в интерфейсе Temporal
Параметры:
adjuster - используемый корректировщик, не null
Возвращает:
экземпляр Year на основе this с выполненной корректировкой, не null
Выбрасывает:
DateTimeException - если коррекция не может быть выполнена
ArithmeticException - если происходит переполнение при вычислениях

с

public Year with(TemporalField field, long newValue)
Возвращает копию этого года с указанным полем, установленным на новое значение.

Это возвращает Year, основанный на этом, со значением указанного поля, изменённым. Если установку значения невозможно выполнить, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.

Если поле является ChronoField, то корректировка реализуется здесь. Поддерживаемые поля ведут себя следующим образом:

  • YEAR_OF_ERA - Возвращает Year с указанным годом эры. Эра останется неизменной.
  • YEAR - Возвращает Year с указанным годом. Это полностью заменяет дату и эквивалентно of(int).
  • ERA - Возвращает Year с указанной эрой. Год эры останется неизменным.

Во всех случаях, если новое значение находится за пределами допустимого диапазона значений для поля, будет выброшено DateTimeException.

Все другие ChronoField экземпляры будут выбрасывать UnsupportedTemporalTypeException.

Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.adjustInto(Temporal, long) с this в качестве аргумента. В этом случае поле определяет, как и следует ли корректировать момент.

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

Указано в:
with в интерфейсе Temporal
Параметры:
field - поле для установки в результате, не null
newValue - новое значение поля в результате
Возвращает:
экземпляр Year на основе this с указанным полем, установленным, не null
Выбрасывает:
DateTimeException - если поле установить невозможно
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - если происходит переполнение при вычислениях

plus

public Year plus(TemporalAmount amountToAdd)
Возвращает копию этого года с добавлением указанного количества.

Это возвращает копию этого года, с добавлением указанного количества. Значение обычно Period, но может быть любого другого типа, реализующего интерфейс TemporalAmount.

Вычисление делегируется объекту количества вызовом TemporalAmount.addTo(Temporal). Реализация количества свободна в реализации добавления, однако обычно она вызывает plus(long, TemporalUnit). Обратитесь к документации реализации количества, чтобы определить, можно ли ее успешно добавить.

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Specified by:
plus в интерфейсе Temporal
Parameters:
amountToAdd - количество для добавления, не null
Returns:
копия этого года с добавлением, не null
Throws:
DateTimeException - если добавление невозможно
ArithmeticException - если происходит переполнение числовых значений

plus

public Year plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этого года с добавлением указанного количества.

Это возвращает копию этого года, с добавлением указанного количества в терминах единицы измерения. Если невозможно добавить количество, потому что единица измерения не поддерживается или по какой-либо другой причине, выбрасывается исключение.

Если поле является ChronoUnit, то добавление выполняется здесь. Поддерживаемые поля ведут себя следующим образом:

  • YEARS - Возвращает копию этого года с добавлением указанного количества лет. Это эквивалентно plusYears(long).
  • DECADES - Возвращает копию этого года с добавлением указанного количества десятилетий. Это эквивалентно вызову plusYears(long) с количеством, умноженным на 10.
  • CENTURIES - Возвращает копию этого года с добавлением указанного количества столетий. Это эквивалентно вызову plusYears(long) с количеством, умноженным на 100.
  • MILLENNIA - Возвращает копию этого года с добавлением указанного количества тысячелетий. Это эквивалентно вызову plusYears(long) с количеством, умноженным на 1000.
  • ERAS - Возвращает копию этого года с добавлением указанного количества эр. Поддерживаются только две эры, поэтому количество должно быть равно одному, нулю или минус одному. Если количество отлично от нуля, то год изменяется таким образом, что год эпохи не меняется.

Все остальные экземпляры ChronoUnit будут выбрасывать UnsupportedTemporalTypeException.

Если поле не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.addTo(Temporal, long) , передав this в качестве аргумента. В этом случае единица измерения определяет, как и выполняется ли добавление.

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Specified by:
plus в интерфейсе Temporal
Parameters:
amountToAdd - количество единиц измерения для добавления к результату, может быть отрицательным
unit - единица измерения количества для добавления, не null
Returns:
копия этого года с добавлением указанного количества, не null
Throws:
DateTimeException - если добавление невозможно
UnsupportedTemporalTypeException - если единица измерения не поддерживается
ArithmeticException - если происходит переполнение числовых значений

plusYears

public Year plusYears(long yearsToAdd)
Возвращает копию этого Year с добавлением указанного количества лет.

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Parameters:
yearsToAdd - количество лет для добавления, может быть отрицательным
Returns:
копия этого года с добавлением лет, не null
Throws:
DateTimeException - если результат выходит за поддерживаемый диапазон

minus

public Year minus(TemporalAmount amountToSubtract)
Возвращает копию этого года с вычитанием указанного количества.

Это возвращает копию этого года, с вычитанием указанного количества. Значение обычно Period, но может быть любого другого типа, реализующего интерфейс TemporalAmount.

Вычисление делегируется объекту количества вызовом TemporalAmount.subtractFrom(Temporal). Реализация количества свободна в реализации вычитания, однако обычно она вызывает minus(long, TemporalUnit). Обратитесь к документации реализации количества, чтобы определить, можно ли ее успешно вычесть.

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Specified by:
minus в интерфейсе Temporal
Parameters:
amountToSubtract - количество для вычитания, не null
Returns:
копия этого года с вычитанием, не null
Throws:
DateTimeException - если вычитание невозможно
ArithmeticException - если происходит переполнение числовых значений

minus

public Year minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этого года с вычитанием указанного количества.

Это возвращает копию этого года, с вычитанием указанного количества в терминах единицы измерения. Если невозможно вычесть количество, потому что единица измерения не поддерживается или по какой-либо другой причине, выбрасывается исключение.

Этот метод эквивалентен plus(long, TemporalUnit) с отрицательным значением количества. См. этот метод для полного описания того, как работает добавление, и, следовательно, вычитание.

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Specified by:
minus в интерфейсе Temporal
Parameters:
amountToSubtract - количество единиц измерения для вычитания из результата, может быть отрицательным
unit - единица измерения количества для вычитания, не null
Returns:
копия этого года с вычитанием указанного количества, не null
Throws:
DateTimeException - если вычитание невозможно
UnsupportedTemporalTypeException - если единица измерения не поддерживается
ArithmeticException - если происходит переполнение числовых значений

minusYears

public Year minusYears(long yearsToSubtract)
Возвращает копию этого Year с вычитанием указанного количества лет.

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Parameters:
yearsToSubtract - количество лет для вычитания, может быть отрицательным
Returns:
копия этого года с вычитанием лет, не null
Throws:
DateTimeException - если результат выходит за поддерживаемый диапазон

query

public <R> R query(TemporalQuery<R> query)
Запрашивает этот год с помощью указанного запроса.

Это запрашивает этот год с помощью указанного объекта стратегии запроса. Объект TemporalQuery определяет логику для получения результата. Прочитайте документацию запроса, чтобы понять, каким будет результат этого метода.

Результат этого метода получается путем вызова метода TemporalQuery.queryFrom(TemporalAccessor) на указанном запросе, передав this в качестве аргумента.

Specified by:
query в интерфейсе TemporalAccessor
Type Parameters:
R - тип результата
Parameters:
query - запрос для вызова, не null
Returns:
результат запроса, может быть возвращен null (определяется запросом)
Throws:
DateTimeException - если запрос невозможен (определяется запросом)
ArithmeticException - если происходит переполнение числовых значений (определяется запросом)

adjustInto

public Temporal adjustInto(Temporal temporal)
Корректирует указанный временной объект, чтобы иметь этот год.

Это возвращает временной объект того же наблюдаемого типа, что и входной, с годом, измененным на такой же, как у этого.

Коррекция эквивалентна использованию Temporal.with(TemporalField, long) , передавая ChronoField.YEAR в качестве поля. Если указанный временной объект не использует систему календаря ISO, выбрасывается DateTimeException.

В большинстве случаев яснее обратить порядок вызова, используя Temporal.with(TemporalAdjuster):

   // these two lines are equivalent, but the second approach is recommended
   temporal = thisYear.adjustInto(temporal);
   temporal = temporal.with(thisYear);
 

Этот экземпляр неизменяем и не затрагивается этим вызовом метода.

Specified by:
adjustInto в интерфейсе TemporalAdjuster
Parameters:
temporal - целевой объект для корректировки, не null
Returns:
откорректированный объект, не null
Throws:
DateTimeException - если коррекция невозможна
ArithmeticException - если происходит переполнение числовых значений

until

public long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет количество времени до следующего года в указанной единице измерения.

Вычисляет количество времени между двумя Year объектами в терминах одной TemporalUnit. Начальная и конечная точки — this и указанный год. Результат будет отрицательным, если конец предшествует началу. Temporal , переданный в этот метод, преобразуется в Year с помощью from(TemporalAccessor). Например, количество десятилетий между двумя годами можно вычислить с помощью startYear.until(endYear, DECADES).

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

Существует два равнозначных способа использования этого метода. Первый — вызвать этот метод. Второй — использовать TemporalUnit.between(Temporal, Temporal):

   // these two lines are equivalent
   amount = start.until(end, YEARS);
   amount = YEARS.between(start, end);
 
Выбор должен быть сделан на основе того, что делает код более удобочитаемым.

Вычисление реализовано в этом методе для ChronoUnit. Поддерживаются единицы YEARS, DECADES, CENTURIES, MILLENNIA и ERAS. Другие ChronoUnit значения приведут к исключению.

Если единица не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.between(Temporal, Temporal) , передавая this в качестве первого аргумента и преобразованный входной временной параметр — в качестве второго аргумента.

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

Specified by:
until в интерфейсе Temporal
Parameters:
endExclusive - конечная дата, исключая, которая преобразуется в Year, не null
unit - единица измерения, не null
Returns:
количество времени между текущим годом и годом окончания
Throws:
DateTimeException - если вычисление невозможно или конечный временной параметр нельзя преобразовать в Year
UnsupportedTemporalTypeException - если единица не поддерживается
ArithmeticException - если происходит переполнение числовых значений

format

public String format(DateTimeFormatter formatter)
Форматирует текущий год с помощью указанного форматера.

Этот год будет передан форматеру для создания строки.

Parameters:
formatter - используемый форматер, не null
Returns:
отформатированная строка года, не null
Throws:
DateTimeException - если при печати произошла ошибка

atDay

public LocalDate atDay(int dayOfYear)
Объединяет текущий год со значением дня в году, создавая LocalDate.

Возвращает LocalDate , образованную из текущего года и указанного дня в году.

Значение дня в году 366 допустимо только в високосном году.

Parameters:
dayOfYear - используемый день в году, от 1 до 365-366
Returns:
дата local, сформированная из текущего года и указанного дня в году, не null
Throws:
DateTimeException - если день года равен нулю или меньше, 366 или больше, или равен 366, и это не високосный год

atMonth

public YearMonth atMonth(Month month)
Объединяет текущий год с месяцем, создавая YearMonth.

Возвращает YearMonth , образованную из текущего года и указанного месяца. Все возможные сочетания года и месяца допустимы.

Этот метод может быть использован как часть цепочки для создания даты:

  LocalDate date = year.atMonth(month).atDay(day);
 
Parameters:
month - используемый месяц, не null
Returns:
год-месяц, сформированный из текущего года и указанного месяца, не null

atMonth

public YearMonth atMonth(int month)
Объединяет текущий год с месяцем, создавая YearMonth.

Возвращает YearMonth , образованную из текущего года и указанного месяца. Все возможные сочетания года и месяца допустимы.

Этот метод может быть использован как часть цепочки для создания даты:

  LocalDate date = year.atMonth(month).atDay(day);
 
Parameters:
month - используемый месяц, от 1 (январь) до 12 (декабрь)
Returns:
год-месяц, сформированный из текущего года и указанного месяца, не null
Throws:
DateTimeException - если месяц недействителен

atMonthDay

public LocalDate atMonthDay(MonthDay monthDay)
Объединяет текущий год с днем месяца, создавая LocalDate.

Возвращает LocalDate , образованную из текущего года и указанного дня месяца.

День месяца 29 февраля будет скорректирован на 28 февраля в результирующей дате, если год не является високосным.

Parameters:
monthDay - используемый день месяца, не null
Returns:
локальная дата, сформированная из текущего года и указанного дня месяца, не null

compareTo

public int compareTo(Year other)
Сравнивает текущий год с другим годом.

Сравнение основано на значении года. Оно "согласовано с equals", как определено в Comparable.

Specified by:
compareTo в интерфейсе Comparable<Year>
Parameters:
other - другой год для сравнения, не null
Returns:
значение компаратора, меньшее нуля, если текущий год предшествует other, ноль, если они равны, или больше нуля, если текущий год следует за other
See Also:
  • isBefore(java.time.Year)
  • isAfter(java.time.Year)

isAfter

public boolean isAfter(Year other)
Проверяет, следует ли текущий год за указанным годом.
Parameters:
other - другой год для сравнения, не null
Returns:
true, если текущий год следует за указанным

isBefore

public boolean isBefore(Year other)
Проверяет, предшествует ли текущий год указанному году.
Parameters:
other - другой год для сравнения, не null
Returns:
true, если текущий год предшествует указанному

equals

public boolean equals(Object obj)
Проверяет, равен ли текущий год другому году.

Сравнение основано на временной позиции годов.

Overrides:
equals в классе Object
Parameters:
obj - объект для проверки, null возвращает false
Returns:
true, если текущий год равен другому году
See Also:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Хеш-код для текущего года.
Overrides:
hashCode в классе Object
Returns:
подходящий хеш-код
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toString

public String toString()
Выводит текущий год в виде String.
Overrides:
toString в классе Object
Returns:
строковое представление текущего года, не null

© 1993, 2023, 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/21/docs/api/java.base/java/time/Year.html

Spec-Zone.ru

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