Spec-Zone.ru › OpenJDK 24

Класс 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 нашей эры представлен числом 2.
Год 1 нашей эры представлен числом 1.
Год 1 до нашей эры представлен числом 0.
Год 2 до нашей эры представлен числом -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)
Проверяет, поддерживается ли указанное поле.

Это проверяет, можно ли запросить у этого года указанное поле. Если false, то вызов методов 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)
Проверяет, поддерживается ли указанный временной интервал.

Это проверяет, можно ли добавить или вычесть указанный временной интервал из этого года. Если false, то вызов методов 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 в противном случае

isValidMonthDay

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)
Возвращает копию этого года с добавленным указанным значением.

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

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

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

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

plus

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

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

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

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

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

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

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

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

plusYears

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

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

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

minus

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

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

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

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

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

minus

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

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

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

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

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

minusYears

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

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

Parameters:
yearsToSubtract - вычитаемые годы, могут быть отрицательными
Returns:
Year, основанная на этом году с вычтенными годами, не 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 единицы. Начальная и конечная точки - это текущий год и указанный год. Результат будет отрицательным, если конечная точка находится до начальной. 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:
локальная дата, образованная из этого года и указанного дня года, не 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
END_OF_DOCUMENT_MARKER

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/Year.html

Spec-Zone.ru

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