Spec-Zone.ru › OpenJDK 27

Класс 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)
Изменяет указанный временной объект так, чтобы он представлял этот год и месяц.
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 из временного объекта.
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
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
protected void finalize()
Устарело, будет удалено: этот элемент API планируется удалить в будущей версии.
Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие вызова notify или interrupt.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного интервала реального времени.

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

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» в соответствии с определением 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, 2026, 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.

Spec-Zone.ru

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