Класс YearMonth
- Все реализованные интерфейсы:
-
Serializable,Comparable<YearMonth>,Temporal,TemporalAccessor,TemporalAdjuster
public final class YearMonth extends Object implements Temporal, TemporalAdjuster, Comparable<YearMonth>, Serializable
2007-12. YearMonth — это неизменяемый объект даты и времени, представляющий собой комбинацию года и месяца. Можно получить любые поля, которые могут быть вычислены по году и месяцу, такие как квартал года.
Этот класс не хранит и не представляет день, время или часовой пояс. Например, значение «октябрь 2007 года» можно сохранить в YearMonth.
Система календаря ISO-8601 — это современная гражданская система календаря, используемая сегодня в большинстве стран мира. Она эквивалентна пролептической григорианской системе календаря, в которой сегодняшние правила високосных лет применяются для всех времен. Для большинства приложений, написанных сегодня, правила ISO-8601 вполне подходят. Однако любое приложение, использующее исторические даты и требующее их точности, обнаружит, что подход ISO-8601 непригоден.
Это класс value-based; программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, иначе могут возникнуть непредсказуемые последствия. Например, в будущих выпусках синхронизация может быть нарушена. Для сравнений следует использовать метод equals.
- Требования к реализации:
- Этот класс неизменяемый и потокобезопасный.
- С:
- 1.8
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Temporal |
adjustInto |
Корректирует указанный временной объект, чтобы он соответствовал этому году и месяцу. |
LocalDate |
atDay |
Объединяет этот год и месяц с днём месяца для создания LocalDate. |
LocalDate |
atEndOfMonth() |
Возвращает LocalDate в конце месяца. |
int |
compareTo |
Сравнивает этот год и месяц с другим годом и месяцем. |
boolean |
equals |
Проверяет, равен ли этот год и месяц другому году и месяцу. |
String |
format |
Форматирует этот год и месяц с помощью указанного форматера. |
static YearMonth |
from |
Получает экземпляр YearMonth из временного объекта. |
int |
get |
Получает значение указанного поля из этого года и месяца в виде int. |
long |
getLong |
Получает значение указанного поля из этого года и месяца в виде long. |
Month |
getMonth() |
Получает поле месяца года, используя перечисление Month. |
int |
getMonthValue() |
Получает поле месяца года от 1 до 12. |
int |
getYear() |
Получает поле года. |
int |
hashCode() |
Код хэша для этого года и месяца. |
boolean |
isAfter |
Проверяет, следует ли этот год и месяц после указанного года и месяца. |
boolean |
isBefore |
Проверяет, предшествует ли этот год и месяц указанному году и месяцу. |
boolean |
isLeapYear() |
Проверяет, является ли год високосным годом в соответствии с правилами ISO пролептической системы календаря. |
boolean |
isSupported |
Проверяет, поддерживается ли указанное поле. |
boolean |
isSupported |
Проверяет, поддерживается ли указанный блок. |
boolean |
isValidDay |
Проверяет, является ли день месяца допустимым для этого года и месяца. |
int |
lengthOfMonth() |
Возвращает длительность месяца с учётом года. |
int |
lengthOfYear() |
Возвращает длительность года. |
YearMonth |
minus |
Возвращает копию этого года и месяца с указанным значением, вычтенным. |
YearMonth |
minus |
Возвращает копию этого года и месяца с указанным значением, вычтенным. |
YearMonth |
minusMonths |
Возвращает копию этого YearMonth с вычитанием указанного количества месяцев. |
YearMonth |
minusYears |
Возвращает копию этого YearMonth с вычитанием указанного количества лет. |
static YearMonth |
now() |
Получает текущий год и месяц с системных часов в часовом поясе по умолчанию. |
static YearMonth |
now |
Получает текущий год и месяц с указанных часов. |
static YearMonth |
now |
Получает текущий год и месяц с системных часов в указанном часовом поясе. |
static YearMonth |
of |
Получает экземпляр YearMonth по году и месяцу. |
static YearMonth |
of |
Получает экземпляр YearMonth по году и месяцу. |
static YearMonth |
parse |
Получает экземпляр YearMonth из текстовой строки, например, 2007-12. |
static YearMonth |
parse |
Получает экземпляр YearMonth из текстовой строки с помощью определенного форматера. |
YearMonth |
plus |
Возвращает копию этого года и месяца с добавлением указанного значения. |
YearMonth |
plus |
Возвращает копию этого года и месяца с добавлением указанного значения. |
YearMonth |
plusMonths |
Возвращает копию этого YearMonth с добавлением указанного количества месяцев. |
YearMonth |
plusYears |
Возвращает копию этого YearMonth с добавлением указанного количества лет. |
<R> R |
query |
Запрашивает этот год и месяц с помощью указанного запроса. |
ValueRange |
range |
Получает диапазон допустимых значений для указанного поля. |
String |
toString() |
Выводит этот год и месяц в виде String, например, 2007-12. |
long |
until |
Вычисляет количество времени до другого года и месяца в терминах указанного блока. |
YearMonth |
with |
Возвращает скорректированную копию этого года и месяца. |
YearMonth |
with |
Возвращает копию этого года и месяца с указанным полем, установленным на новое значение. |
YearMonth |
withMonth |
Возвращает копию этого YearMonth с изменённым месяцем года. |
YearMonth |
withYear |
Возвращает копию этого YearMonth с изменённым годом. |
Подробное описание методов
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()
Этот метод возвращает месяц как int от 1 до 12. Для кода приложения часто будет более понятнее использовать перечисление Month вызывая getMonth().
- Returns:
- месяц, от 1 до 12
- See Also:
getMonth
public Month getMonth()
Month.
Этот метод возвращает перечисление Month для месяца. Это позволяет избежать неоднозначности в интерпретации значений int. Если вам нужен доступ к примитивному значению int, перечисление предоставляет int value.
- Returns:
- месяц, не null
- See Also:
isLeapYear
public boolean isLeapYear()
Этот метод применяет текущие правила для високосных годов на всей временной шкале. Как правило, год является високосным, если он делится на четыре без остатка. Однако годы, делящиеся на 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:
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 - См. также:
isAfter
public boolean isAfter(YearMonth other)
- Параметры:
-
other- другой год и месяц для сравнения, не null - Возвращает:
- true, если текущий год и месяц после указанного года и месяца
isBefore
public boolean isBefore(YearMonth other)
- Параметры:
-
other- другой год и месяц для сравнения, не null - Возвращает:
- true, если этот момент времени до указанного года и месяца
equals
public boolean equals(Object obj)
Сравнение основано на временном положении годов и месяцев.
hashCode
toString
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/YearMonth.html