Spec-Zone.ru › OpenJDK 25

Класс YearMonth

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

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

Этот класс не хранит и не представляет день, время или часовой пояс. Например, значение «октябрь 2007 года» можно сохранить в YearMonth.

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

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

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

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

Модификатор и тип Метод Описание
Temporal adjustInto(Temporal temporal)
Настраивает указанный объект temporal так, чтобы он представлял этот год и месяц.
LocalDate atDay(int dayOfMonth)
Объединяет этот год и месяц с днем месяца, создавая LocalDate.
LocalDate atEndOfMonth()
Возвращает LocalDate в конце месяца.
int compareTo(YearMonth other)
Сравнивает этот год и месяц с другим годом и месяцем.
boolean equals(Object obj)
Проверяет, равен ли этот год и месяц другому году и месяцу.
String format(DateTimeFormatter formatter)
Форматирует этот год и месяц с помощью указанного форматировщика.
static YearMonth from(TemporalAccessor temporal)
Получает экземпляр YearMonth из объекта temporal.
int get(TemporalField field)
Получает значение указанного поля этого года и месяца в виде int.
long getLong(TemporalField field)
Получает значение указанного поля этого года и месяца в виде long.
Month getMonth()
Получает поле месяца года с помощью перечисления Month.
int getMonthValue()
Получает поле месяца года в диапазоне от 1 до 12.
int getYear()
Получает поле года.
int hashCode()
Хеш-код этого года и месяца.
boolean isAfter(YearMonth other)
Проверяет, находится ли этот год и месяц после указанного года и месяца.
boolean isBefore(YearMonth other)
Проверяет, находится ли этот год и месяц перед указанным годом и месяцем.
boolean isLeapYear()
Проверяет, является ли год високосным согласно правилам пролептической календарной системы ISO.
boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанная единица измерения.
boolean isValidDay(int dayOfMonth)
Проверяет, допустим ли день месяца для этого года и месяца.
int lengthOfMonth()
Возвращает количество дней в месяце с учетом года.
int lengthOfYear()
Возвращает количество дней в году.
YearMonth minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этого года и месяца с вычтенным указанным значением.
YearMonth minus(TemporalAmount amountToSubtract)
Возвращает копию этого года и месяца с вычтенным указанным значением.
YearMonth minusMonths(long monthsToSubtract)
Возвращает копию этого YearMonth с вычтенным указанным количеством месяцев.
YearMonth minusYears(long yearsToSubtract)
Возвращает копию этого YearMonth с вычтенным указанным количеством лет.
static YearMonth now()
Получает текущий год и месяц по системным часам в часовом поясе по умолчанию.
static YearMonth now(Clock clock)
Получает текущий год и месяц по указанным часам.
static YearMonth now(ZoneId zone)
Получает текущий год и месяц по системным часам в указанном часовом поясе.
static YearMonth of(int year, int month)
Получает экземпляр YearMonth по году и месяцу.
static YearMonth of(int year, Month month)
Получает экземпляр YearMonth по году и месяцу.
static YearMonth parse(CharSequence text)
Получает экземпляр YearMonth из текстовой строки, например 2007-12.
static YearMonth parse(CharSequence text, DateTimeFormatter formatter)
Получает экземпляр YearMonth из текстовой строки с помощью указанного форматировщика.
YearMonth plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этого года и месяца с добавленным указанным значением.
YearMonth plus(TemporalAmount amountToAdd)
Возвращает копию этого года и месяца с добавленным указанным значением.
YearMonth plusMonths(long monthsToAdd)
Возвращает копию этого YearMonth с добавленным указанным количеством месяцев.
YearMonth plusYears(long yearsToAdd)
Возвращает копию этого YearMonth с добавленным указанным количеством лет.
<R> R query(TemporalQuery<R> query)
Выполняет запрос к этому году и месяцу с помощью указанного запроса.
ValueRange range(TemporalField field)
Получает диапазон допустимых значений указанного поля.
String toString()
Выводит этот год и месяц в виде String, например 2007-12.
long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет промежуток времени до другого года и месяца в указанных единицах измерения.
YearMonth with(TemporalAdjuster adjuster)
Возвращает скорректированную копию этого года и месяца.
YearMonth with(TemporalField field, long newValue)
Возвращает копию этого года и месяца, в которой указанному полю присвоено новое значение.
YearMonth withMonth(int month)
Возвращает копию этого YearMonth с измененным месяцем года.
YearMonth withYear(int year)
Возвращает копию этого YearMonth с измененным годом.

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

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

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

now

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

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

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

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

now

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

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

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

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

now

public static YearMonth now(Clock clock)
Получает текущий год-месяц по указанным часам.

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

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

of

public static YearMonth of(int year, Month month)
Создает экземпляр YearMonth на основе года и месяца.
Параметры:
year — представляемый год, от MIN_YEAR до MAX_YEAR
month — представляемый месяц года; значение не равно null
Возвращает:
год-месяц; значение не равно null
Исключения:
DateTimeException — если значение года недопустимо

of

public static YearMonth of(int year, int month)
Создает экземпляр YearMonth на основе года и месяца.
Параметры:
year — представляемый год, от MIN_YEAR до MAX_YEAR
month — представляемый месяц года, от 1 (январь) до 12 (декабрь)
Возвращает:
год-месяц; значение не равно null
Исключения:
DateTimeException — если значение одного из полей недопустимо

from

public static YearMonth from(TemporalAccessor temporal)
Создает экземпляр YearMonth на основе временного объекта.

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

При преобразовании извлекаются поля YEAR и MONTH_OF_YEAR. Извлечение допускается, только если у временного объекта хронология ISO или его можно преобразовать в LocalDate.

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

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

parse

public static YearMonth parse(CharSequence text)
Создает экземпляр YearMonth на основе текстовой строки, например 2007-12.

Строка должна представлять допустимую комбинацию года и месяца. Формат должен быть uuuu-MM. Перед годами, выходящими за диапазон от 0000 до 9999, должен стоять знак плюса или минуса.

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

parse

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

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

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

isSupported

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

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

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

  • MONTH_OF_YEAR
  • PROLEPTIC_MONTH
  • 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, запрос обрабатывается здесь. Поддерживаются следующие единицы измерения:

  • MONTHS
  • 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 возвращает допустимые значения на основе этого года-месяца, за исключением PROLEPTIC_MONTH, значение которого слишком велико для представления в int и для которого выбрасывается DateTimeException. Для всех остальных экземпляров 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 — при переполнении числового значения

getYear

public int getYear()
Получает поле года.

Этот метод возвращает примитивное значение int для года.

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

Возвращает:
год, от MIN_YEAR до MAX_YEAR

getMonthValue

public int getMonthValue()
Получает поле месяца года в диапазоне от 1 до 12.

Этот метод возвращает месяц в виде int в диапазоне от 1 до 12. Код приложения часто становится понятнее, если использовать перечисление Month, вызывая getMonth().

Возвращает:
месяц года, от 1 до 12
См. также:
  • getMonth()

getMonth

public Month getMonth()
Получает поле месяца года с использованием перечисления Month.

Этот метод возвращает для месяца значение перечисления Month. Это позволяет избежать неоднозначности значений int. Если требуется доступ к примитивному значению int, перечисление предоставляет метод int value.

Возвращает:
месяц года; значение не равно null
См. также:
  • getMonthValue()

isLeapYear

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

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

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

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

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

isValidDay

public boolean isValidDay(int dayOfMonth)
Проверяет, допустим ли день месяца для этого года-месяца.

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

Параметры:
dayOfMonth — проверяемый день месяца, от 1 до 31; для недопустимого значения возвращается false
Возвращает:
true, если день допустим для этого года-месяца

lengthOfMonth

public int lengthOfMonth()
Возвращает продолжительность месяца с учетом года.

Возвращает продолжительность месяца в днях. Например, для даты в январе будет возвращено 31.

Возвращает:
продолжительность месяца в днях, от 28 до 31

lengthOfYear

public int lengthOfYear()
Возвращает продолжительность года.

Возвращает продолжительность года в днях: 365 или 366.

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

with

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

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

Простой корректировщик может просто установить значение одного из полей, например года. Более сложный корректировщик может установить год-месяц, соответствующий следующему сближению кометы Галлея с Землей.

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

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

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

with

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

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

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

  • MONTH_OF_YEAR — возвращает YearMonth с указанным месяцем года. Год остается неизменным.
  • PROLEPTIC_MONTH — возвращает YearMonth с указанным пролептическим месяцем. Поля года и месяца этого объекта полностью заменяются.
  • YEAR_OF_ERA — возвращает YearMonth с указанным годом эры. Месяц и эра остаются неизменными.
  • YEAR — возвращает YearMonth с указанным годом. Месяц остается неизменным.
  • ERA — возвращает YearMonth с указанной эрой. Месяц и год эры остаются неизменными.

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

Для всех остальных экземпляров ChronoField выбрасывается UnsupportedTemporalTypeException.

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

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

Определено в:
with в интерфейсе Temporal
Параметры:
field — поле, значение которого следует установить в результате; значение не равно null
newValue — новое значение поля в результате
Возвращает:
экземпляр YearMonth на основе this с указанным значением поля; значение не равно null
Исключения:
DateTimeException — если невозможно установить значение поля
UnsupportedTemporalTypeException — если поле не поддерживается
ArithmeticException — при переполнении числового значения

withYear

public YearMonth withYear(int year)
Возвращает копию этого YearMonth с измененным годом.

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

Параметры:
year — год для установки в возвращаемом году-месяце, от MIN_YEAR до MAX_YEAR
Возвращает:
экземпляр YearMonth на основе этого года-месяца с указанным годом; значение не равно null
Исключения:
DateTimeException — если значение года недопустимо

withMonth

public YearMonth withMonth(int month)
Возвращает копию этого YearMonth с измененным месяцем года.

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

Параметры:
month — месяц года для установки в возвращаемом году-месяце, от 1 (январь) до 12 (декабрь)
Возвращает:
экземпляр YearMonth на основе этого года-месяца с указанным месяцем; значение не равно null
Исключения:
DateTimeException — если значение месяца года недопустимо

plus

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

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

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

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

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

plus

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

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

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

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

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

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

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

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

plusYears

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

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

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

plusMonths

public YearMonth plusMonths(long monthsToAdd)
Возвращает копию этого YearMonth с прибавленным указанным количеством месяцев.

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

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

minus

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

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

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

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

Указано в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract - вычитаемое значение, не null
Возвращает:
YearMonth на основе этого года-месяца, из которого выполнено вычитание, не null
Исключения:
DateTimeException - если вычитание невозможно выполнить
ArithmeticException - при числовом переполнении

minus

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

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

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

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

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

minusYears

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

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

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

minusMonths

public YearMonth minusMonths(long monthsToSubtract)
Возвращает копию этого YearMonth с вычтенным указанным количеством месяцев.

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

Параметры:
monthsToSubtract - количество вычитаемых месяцев; может быть отрицательным
Возвращает:
YearMonth на основе этого года-месяца с вычтенными месяцами, не 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.with(TemporalField, long) с передачей ChronoField.PROLEPTIC_MONTH в качестве поля. Если указанный объект временной шкалы не использует календарную систему ISO, выбрасывается DateTimeException.

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

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

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

Указано в:
adjustInto в интерфейсе TemporalAdjuster
Параметры:
temporal - целевой объект для настройки, не null
Возвращает:
настроенный объект, не null
Исключения:
DateTimeException - если выполнить настройку невозможно
ArithmeticException - при числовом переполнении

until

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

Вычисляет промежуток времени между двумя объектами YearMonth в единицах одной TemporalUnit. Начальная и конечная точки — это this и указанный год-месяц. Если конечная точка предшествует начальной, результат будет отрицательным. Переданный этому методу объект Temporal преобразуется в YearMonth с помощью from(TemporalAccessor). Например, промежуток в годах между двумя годами-месяцами можно вычислить с помощью startYearMonth.until(endYearMonth, YEARS).

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

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

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

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

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

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

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

format

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

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

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

atDay

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

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

Значение дня месяца должно быть допустимым для данного года-месяца.

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

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

atEndOfMonth

public LocalDate atEndOfMonth()
Возвращает LocalDate на конец месяца.

Возвращает LocalDate на основе этого года-месяца. День месяца устанавливается в последний допустимый день месяца с учетом високосных лет.

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

 LocalDate date = year.atMonth(month).atEndOfMonth();
Возвращает:
последнюю допустимую дату этого года-месяца, не null

compareTo

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

Сначала сравниваются значения года, затем значения месяца. Результат согласован с equals («consistent with equals»), как определено в Comparable.

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

isAfter

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

isBefore

public boolean isBefore(YearMonth 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, например 2007-12.

Вывод будет представлен в формате uuuu-MM:

Переопределяет:
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/YearMonth.html

Spec-Zone.ru

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