Spec-Zone.ru › OpenJDK 24

Класс 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 непригоден.

Это класс value-based; программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, иначе могут возникнуть непредсказуемые последствия. Например, в будущих выпусках синхронизация может быть нарушена. Для сравнений следует использовать метод 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 с изменённым годом.

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

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

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

Specified by:
get в интерфейсе TemporalAccessor
Parameters:
field - поле для получения, не null
Returns:
значение для поля
Throws:
DateTimeException - если значение для поля получить невозможно или оно находится за пределами допустимого диапазона значений для поля
UnsupportedTemporalTypeException - если поле не поддерживается или диапазон значений превышает int
ArithmeticException - если происходит переполнение числовых значений

getLong

public long getLong(TemporalField field)
Получает значение указанного поля из текущего года-месяца как long.

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

Если поле является ChronoField, то запрос выполняется здесь. Метод supported fields вернёт допустимые значения на основе текущего года-месяца. Все остальные ChronoField экземпляры выбросят UnsupportedTemporalTypeException.

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

Specified by:
getLong в интерфейсе TemporalAccessor
Parameters:
field - поле для получения, не null
Returns:
значение для поля
Throws:
DateTimeException - если значение для поля получить невозможно
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - если происходит переполнение числовых значений

getYear

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

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

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

Returns:
год, от MIN_YEAR до MAX_YEAR

getMonthValue

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

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

Returns:
месяц, от 1 до 12
See Also:
  • getMonth()

getMonth

public Month getMonth()
Получает поле месяца с помощью перечисления Month.

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

Returns:
месяц, не null
See Also:
  • getMonthValue()

isLeapYear

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

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

Вычисление пролептическое — оно применяется одинаково в далёком будущем и прошлом. Это исторически неточно, но правильно для стандарта ISO-8601.

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

isValidDay

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

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

Parameters:
dayOfMonth - день месяца для проверки, от 1 до 31, недопустимое значение возвращает false
Returns:
true, если день допустим для данного года и месяца

lengthOfMonth

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

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

Returns:
длительность месяца в днях, от 28 до 31

lengthOfYear

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

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

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

with

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

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

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

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

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

Specified by:
with в интерфейсе Temporal
Parameters:
adjuster - адаптер для использования, не null
Returns:
YearMonth, основанный на this с внесённым изменением, не null
Throws:
DateTimeException - если корректировка не может быть выполнена
ArithmeticException - если происходит переполнение числовых значений

с

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 - новое значение поля в результате
Возвращает:
a YearMonth, основанный на this, с установленным указанным полем, не null
Выбрасывает:
DateTimeException - если поле нельзя установить
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - если происходит переполнение чисел

сГодом

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

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

Параметры:
year - год, который нужно установить в возвращаемый год-месяц, от MIN_YEAR до MAX_YEAR
Возвращает:
a YearMonth, основанный на этом году-месяце с запрошенным годом, не null
Выбрасывает:
DateTimeException - если значение года недопустимо

сМесяцем

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

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

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

плюс

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

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

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

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

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

плюс

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) с количеством, умноженным на 1000.
  • ERAS - Возвращает YearMonth с указанным числом эр, добавленных. Поддерживается только две эры, поэтому количество должно быть равно единице, нулю или минус единице. Если количество не равно нулю, то год изменяется таким образом, чтобы год эры оставался неизменным.

Все другие ChronoUnit объекты будут выбрасывать UnsupportedTemporalTypeException.

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

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

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

плюсЛет

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

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

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

плюсМесяцев

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

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

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

minus

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

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

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

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

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

minus

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

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

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

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

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

minusYears

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

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

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

minusMonths

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

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

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

query

public <R> R query(TemporalQuery<R> query)
Запрашивает этот год-месяц с помощью указанного запроса.

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

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

Specified by:
query в интерфейсе TemporalAccessor
Type Parameters:
R - тип результата
Parameters:
query - запрос для вызова, не null
Returns:
результат запроса, может быть возвращен null (определяется запросом)
Throws:
DateTimeException - если запрос не удается (определяется запросом)
ArithmeticException - если произошло переполнение числовых значений (определяется запросом)

adjustInto

public Temporal adjustInto(Temporal temporal)
Настраивает указанный временной объект для использования этого года-месяца.

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

Настройка эквивалентна использованию Temporal.with(TemporalField, long) передавая ChronoField.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);
 

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

Specified by:
adjustInto в интерфейсе TemporalAdjuster
Parameters:
temporal - целевой объект для настройки, не null
Returns:
настроенный объект, не null
Throws:
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 в качестве первого аргумента и преобразованный входной временной объект во втором аргументе.

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

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

format

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

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

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

atDay

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

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

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

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

  LocalDate date = year.atMonth(month).atDay(day);
 
Parameters:
dayOfMonth - используемый день месяца, от 1 до 31
Returns:
дата, сформированная из этого года-месяца и указанного дня, не null
Throws:
DateTimeException - если день недопустим для года-месяца
See Also:
  • isValidDay(int)

atEndOfMonth

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

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

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

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

compareTo

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

Сравнение основано сначала на значении года, затем на значении месяца. Оно согласуется с методом equals, как определено в Comparable.

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

toString

public String toString()
Выводит текущий год и месяц в виде строки, например, 2007-12.

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

Переопределяет:
toString в классе Object
Возвращает:
строковое представление текущего года и месяца, не null

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/YearMonth.html

Spec-Zone.ru

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