Spec-Zone.ru › OpenJDK 25

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

Методы, объявленные в классе 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)
Проверяет, поддерживается ли указанное поле.

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

range

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

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

Если поле является ChronoField, запрос обрабатывается здесь. Метод supported fields возвращает соответствующие экземпляры диапазона. Для всех остальных экземпляров ChronoField будет выброшено исключение UnsupportedTemporalTypeException.

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

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

get

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 — при переполнении числового значения

isLeap

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, если месяц и день допустимы для этого года

length

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

with

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

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

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

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

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

with

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). Ознакомьтесь с документацией реализации величины, чтобы определить, можно ли успешно выполнить сложение.

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

Определено в:
plus в интерфейсе Temporal
Параметры:
amountToAdd — величина для прибавления; не null
Возвращает:
Year на основе этого года с выполненным сложением; не null
Выбрасывает:
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) с величиной, умноженной на 1 000.
  • ERAS — возвращает Year с прибавленным указанным количеством эр. Поддерживаются только две эры, поэтому величина должна быть равна единице, нулю или минус единице. Если величина не равна нулю, год изменяется так, чтобы год эры остался неизменным.

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

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

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

Определено в:
plus в интерфейсе Temporal
Параметры:
amountToAdd — величина в единицах измерения, которую нужно прибавить к результату; может быть отрицательной
unit — единица измерения прибавляемой величины; не null
Возвращает:
Year на основе этого года с прибавленной указанной величиной; не null
Выбрасывает:
DateTimeException — если сложение выполнить невозможно
UnsupportedTemporalTypeException — если единица измерения не поддерживается
ArithmeticException — при переполнении числового значения

plusYears

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

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

Параметры:
yearsToAdd — количество лет для прибавления; может быть отрицательным
Возвращает:
Year на основе этого года с прибавленным количеством лет; не null
Выбрасывает:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона

minus

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

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

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

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

Определено в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract — величина для вычитания; не null
Возвращает:
Year на основе этого года с выполненным вычитанием; не null
Выбрасывает:
DateTimeException — если вычитание выполнить невозможно
ArithmeticException — при переполнении числового значения

minus

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

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

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

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

Определено в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract — величина в единицах измерения, которую нужно вычесть из результата; может быть отрицательной
unit — единица измерения вычитаемой величины; не null
Возвращает:
Year на основе этого года с вычтенной указанной величиной; не null
Выбрасывает:
DateTimeException — если вычитание выполнить невозможно
UnsupportedTemporalTypeException — если единица измерения не поддерживается
ArithmeticException — при переполнении числового значения

minusYears

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

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

Параметры:
yearsToSubtract — количество лет для вычитания; может быть отрицательным
Возвращает:
Year на основе этого года с вычтенным количеством лет; не null
Выбрасывает:
DateTimeException — если результат выходит за пределы поддерживаемого диапазона

query

public <R> R query(TemporalQuery<R> query)
Выполняет запрос к этому году с помощью указанного запроса.

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

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

Определено в:
query в интерфейсе TemporalAccessor
Параметры типа:
R — тип результата
Параметры:
query — запрос для выполнения, не null
Возвращает:
результат запроса; может быть возвращено значение null (определяется запросом)
Исключения:
DateTimeException — если не удается выполнить запрос (определяется запросом)
ArithmeticException — при переполнении числового значения (определяется запросом)

adjustInto

public Temporal adjustInto(Temporal temporal)
Изменяет указанный объект temporal так, чтобы в нем был установлен этот год.

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

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

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

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

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

Определено в:
adjustInto в интерфейсе TemporalAdjuster
Параметры:
temporal — целевой объект для изменения, не null
Возвращает:
измененный объект, не null
Исключения:
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 в качестве первого аргумента, а преобразованного входного объекта temporal — в качестве второго аргумента.

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

Определено в:
until в интерфейсе Temporal
Параметры:
endExclusive — конечная дата, не включительно; преобразуется в Year, не null
unit — единица измерения промежутка, не null
Возвращает:
промежуток времени между этим годом и конечным годом
Исключения:
DateTimeException — если невозможно вычислить промежуток или конечный объект temporal нельзя преобразовать в Year
UnsupportedTemporalTypeException — если единица измерения не поддерживается
ArithmeticException — при переполнении числового значения

format

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

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

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

atDay

public LocalDate atDay(int dayOfYear)
Объединяет этот год с днем года, чтобы создать LocalDate.

Возвращает LocalDate, сформированный из этого года и указанного дня года.

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

Параметры:
dayOfYear — используемый день года, от 1 до 365–366
Возвращает:
локальная дата, сформированная из этого года и указанного дня года, не null
Исключения:
DateTimeException — если день года равен нулю или меньше, больше или равен 366, а этот год не является високосным

atMonth

public YearMonth atMonth(Month month)
Объединяет этот год с месяцем, чтобы создать YearMonth.

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

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

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

atMonth

public YearMonth atMonth(int month)
Объединяет этот год с месяцем, чтобы создать YearMonth.

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

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

 LocalDate date = year.atMonth(month).atDay(day);
Параметры:
month — используемый месяц года, от 1 (январь) до 12 (декабрь)
Возвращает:
год и месяц, сформированные из этого года и указанного месяца, не null
Исключения:
DateTimeException — если месяц недопустим

atMonthDay

public LocalDate atMonthDay(MonthDay monthDay)
Объединяет этот год с месяцем и днем, чтобы создать LocalDate.

Возвращает LocalDate, сформированный из этого года и указанного месяца и дня.

Если год не является високосным, то дата 29 февраля будет скорректирована до 28 февраля.

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

compareTo

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

Сравнение выполняется на основе значения года. Оно «согласовано с equals» в соответствии с определением Comparable.

Определено в:
compareTo в интерфейсе Comparable<Year>
Параметры:
other — другой год для сравнения, не null
Возвращает:
значение сравнения: меньше нуля, если этот год предшествует other; ноль, если годы равны; или больше нуля, если этот год следует за other
См. также:
  • isBefore(Year)
  • isAfter(Year)

isAfter

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

isBefore

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

equals

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

Сравнение основано на положении годов на временной шкале.

Переопределяет:
equals в классе Object
Параметры:
obj — объект для проверки; для null возвращается false
Возвращает:
true, если этот год равен другому
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Хеш-код этого года.
Переопределяет:
hashCode в классе Object
Возвращает:
подходящий хеш-код
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

toString

public String toString()
Представляет этот год в виде String.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этого года, не null

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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/Year.html

Spec-Zone.ru

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