Класс Year
- Все реализованные интерфейсы:
Serializable, Comparable<Year>, Temporal, TemporalAccessor, TemporalAdjuster
public final class Year extends Object implements Temporal, TemporalAdjuster, Comparable<Year>, Serializable
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 |
Изменяет указанный временной объект, устанавливая в нем этот год. |
LocalDate |
atDay |
Объединяет этот год с днем года, создавая LocalDate. |
YearMonth |
atMonth |
Объединяет этот год с месяцем, создавая YearMonth. |
YearMonth |
atMonth |
Объединяет этот год с месяцем, создавая YearMonth. |
LocalDate |
atMonthDay |
Объединяет этот год с днем и месяцем, создавая LocalDate. |
int |
compareTo |
Сравнивает этот год с другим годом. |
boolean |
equals |
Проверяет, равен ли этот год другому году. |
String |
format |
Форматирует этот год с помощью указанного форматировщика. |
static Year |
from |
Получает экземпляр Year из временного объекта. |
int |
get |
Получает значение указанного поля этого года в виде int. |
long |
getLong |
Получает значение указанного поля этого года в виде long. |
int |
getValue() |
Получает значение года. |
int |
hashCode() |
Хеш-код этого года. |
boolean |
isAfter |
Проверяет, находится ли этот год после указанного года. |
boolean |
isBefore |
Проверяет, находится ли этот год до указанного года. |
boolean |
isLeap() |
Проверяет, является ли год високосным согласно правилам пролептической календарной системы ISO. |
static boolean |
isLeap |
Проверяет, является ли год високосным согласно правилам пролептической календарной системы ISO. |
boolean |
isSupported |
Проверяет, поддерживается ли указанное поле. |
boolean |
isSupported |
Проверяет, поддерживается ли указанная единица измерения. |
boolean |
isValidMonthDay |
Проверяет, допустимы ли день и месяц для этого года. |
int |
length() |
Получает продолжительность этого года в днях. |
Year |
minus |
Возвращает копию этого года с вычтенным указанным количеством. |
Year |
minus |
Возвращает копию этого года с вычтенным указанным количеством. |
Year |
minusYears |
Возвращает копию этого Year с вычтенным указанным количеством лет. |
static Year |
now() |
Получает текущий год по системным часам в часовом поясе по умолчанию. |
static Year |
now |
Получает текущий год по указанным часам. |
static Year |
now |
Получает текущий год по системным часам в указанном часовом поясе. |
static Year |
of |
Получает экземпляр Year. |
static Year |
parse |
Получает экземпляр Year из текстовой строки, например 2007. |
static Year |
parse |
Получает экземпляр Year из текстовой строки с помощью заданного форматировщика. |
Year |
plus |
Возвращает копию этого года с прибавленным указанным количеством. |
Year |
plus |
Возвращает копию этого года с прибавленным указанным количеством. |
Year |
plusYears |
Возвращает копию этого Year с прибавленным указанным количеством лет. |
<R> R |
query |
Выполняет запрос к этому году с помощью указанного запроса. |
ValueRange |
range |
Получает диапазон допустимых значений указанного поля. |
String |
toString() |
Выводит этот год в виде String. |
long |
until |
Вычисляет время до другого года в единицах указанной единицы измерения. |
Year |
with |
Возвращает измененную копию этого года. |
Year |
with |
Возвращает копию этого года, в которой указанному полю присвоено новое значение. |
Подробное описание полей
MIN_VALUE
public static final int MIN_VALUE
- См. также:
MAX_VALUE
public static final int MAX_VALUE
- См. также:
Подробное описание методов
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)
Этот метод применяет текущие правила високосных лет ко всей временной шкале. В общем случае год является високосным, если он делится на четыре без остатка. Однако годы, делящиеся на 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()
Этот метод применяет текущие правила високосных лет ко всей временной шкале. В общем случае год является високосным, если он делится на четыре без остатка. Однако годы, делящиеся на 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.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 - См. также:
isAfter
public boolean isAfter(Year other)
- Параметры:
-
other— другой год для сравнения, не null - Возвращает:
- true, если этот год следует за указанным
isBefore
public boolean isBefore(Year other)
- Параметры:
-
other— другой год для сравнения, не null - Возвращает:
- true, если этот момент времени предшествует указанному году
equals
hashCode
toString
© 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