Spec-Zone.ru › OpenJDK 17

Класс 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 с изменённым годом.

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

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

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

  • MONTH_OF_YEAR
  • PROLEPTIC_MONTH
  • YEAR_OF_ERA
  • YEAR
  • ERA
Все остальные ChronoField возвращают ложь.

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

Указано в:
isSupported в интерфейсе TemporalAccessor
Параметры:
field - поле для проверки, null возвращает ложь
Возвращает:
true, если поле поддерживается этим годом-месяцем, false иначе

isSupported

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

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

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

  • MONTHS
  • YEARS
  • DECADES
  • CENTURIES
  • MILLENNIA
  • ERAS
Все остальные ChronoUnit возвращают ложь.

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

Указано в:
isSupported в интерфейсе Temporal
Параметры:
unit - интервал для проверки, null возвращает ложь
Возвращает:
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, которые являются високосным.

Например, 1904 год является високосным, так как делится на 4. 1900 год не был високосным, так как делится на 100, однако 2000 год был високосным, так как делится на 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 - если произошёл переполнение при арифметических операциях

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

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

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

с годом

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

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

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

с месяцем

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

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

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

плюс

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

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

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

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

Определено в:
plus в интерфейсе Temporal
Параметры:
amountToAdd - значение для добавления, не null
Возвращает:
копию 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
Возвращает:
копию YearMonth на основе этого месяца-года с добавлением указанного значения, не null
Исключение:
DateTimeException - если добавление невозможно
UnsupportedTemporalTypeException - если единица не поддерживается
ArithmeticException - если происходит переполнение числового типа

добавить лет

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

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

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

добавить месяцев

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

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

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

минус

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

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

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

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

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

минус

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

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

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

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

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

вычесть лет

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

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

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

вычесть месяцев

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

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

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

запрос

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

до

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

форматировать

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
Возвращает:
значение компаратора, отрицательное, если меньше, положительное, если больше

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()
Выводит этот год-месяц как String, например, 2007-12.

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

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

© 1993, 2021, 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/17/docs/api/java.base/java/time/YearMonth.html

Spec-Zone.ru

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