Класс 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 неприемлемым.
Это значение-ориентированный класс; использование операций, чувствительных к идентичности (включая равенство ссылок (==), хэш-код идентичности или синхронизацию) на экземплярах YearMonth может привести к непредсказуемым результатам и должно быть избегаемо. Для сравнения следует использовать метод equals.
- Требования к реализации:
- Этот класс неизменяемый и потокобезопасный.
- С тех пор:
- 1.8
- См. также:
- Сериализованная форма
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Temporal | adjustInto(Temporal temporal) | Настраивает указанный временной объект таким образом, чтобы у него был этот год-месяц. |
LocalDate | atDay(int dayOfMonth) | Объединяет этот год-месяц с днем месяца, чтобы создать |
LocalDate | atEndOfMonth() | Возвращает |
int | compareTo(YearMonth other) | Сравнивает этот год-месяц с другим годом-месяцем. |
boolean | equals(Object obj) | Проверяет, равен ли этот год-месяц другому году-месяцу. |
String | format(DateTimeFormatter formatter) | Форматирует этот год-месяц, используя указанный форматтер. |
static YearMonth | from(TemporalAccessor temporal) | Получает экземпляр |
int | get(TemporalField field) | Получает значение указанного поля из этого года-месяца как |
long | getLong(TemporalField field) | Получает значение указанного поля из этого года-месяца как |
Month | getMonth() | Получает поле месяца года, используя перечисление |
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 | minusYears(long yearsToSubtract) | Возвращает копию этого года-месяца с вычитанием указанного количества лет. |
static YearMonth | now() | Получает текущий год-месяц с системных часов в часовом поясе по умолчанию. |
static YearMonth | now(Clock clock) | Получает текущий год-месяц из указанных часов. |
static YearMonth | now(ZoneId zone) | Получает текущий год-месяц с системных часов в указанном часовом поясе. |
static YearMonth | of(int year,
int month) | Получает экземпляр |
static YearMonth | of(int year,
Month month) | Получает экземпляр |
static YearMonth | parse(CharSequence text) | Получает экземпляр |
static YearMonth | parse(CharSequence text,
DateTimeFormatter formatter) | Получает экземпляр |
YearMonth | plus(long amountToAdd,
TemporalUnit unit) | Возвращает копию этого года-месяца с добавлением указанного количества. |
YearMonth | plus(TemporalAmount amountToAdd) | Возвращает копию этого года-месяца с добавлением указанного количества. |
YearMonth | plusMonths(long monthsToAdd) | Возвращает копию этого года-месяца с добавлением указанного количества месяцев. |
YearMonth | plusYears(long yearsToAdd) | Возвращает копию этого года-месяца с добавлением указанного количества лет. |
<R> R | query(TemporalQuery<R> query) | Запрашивает этот год-месяц с помощью указанного запроса. |
ValueRange | range(TemporalField field) | Получает диапазон допустимых значений для указанного поля. |
String | toString() | Выводит этот год-месяц как |
long | until(Temporal endExclusive,
TemporalUnit unit) | Вычисляет количество времени до другого года-месяца в терминах указанной единицы. |
YearMonth | with(TemporalAdjuster adjuster) | Возвращает изменённую копию этого года-месяца. |
YearMonth | with(TemporalField field,
long newValue) | Возвращает копию этого года-месяца с установленным указанным полем в новое значение. |
YearMonth | withMonth(int month) | Возвращает копию этого года-месяца с изменённым месяцем года. |
YearMonth | withYear(int year) | Возвращает копию этого года-месяца с изменённым годом. |
Методы, объявленные в классе 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 в качестве аргумента. Возможность получения значения и то, что оно представляет, определяется самим полем.
- Определено в:
-
getв интерфейсеTemporalAccessor - Параметры:
-
field- поле для получения, не null - Возвращает:
- значение для поля
- Исключения:
-
DateTimeException- если значение для поля получить невозможно или значение находится за пределами допустимого диапазона для поля -
UnsupportedTemporalTypeException- если поле не поддерживается или диапазон значений превышаетint -
ArithmeticException- если произошел численный переполнение
getLong
public long getLong(TemporalField field)
Получает значение указанного поля из этого года-месяца как long.
Это запрашивает значение указанного поля для этого года-месяца. Если получить значение невозможно, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то запрос реализуется здесь. supported fields вернёт допустимые значения на основе этого года-месяца. Все остальные ChronoField экземпляры выбросят UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.getFrom(TemporalAccessor), передавая this в качестве аргумента. Возможность получения значения и то, что представляет собой значение, определяется полем.
- Определено в:
-
getLongв интерфейсеTemporalAccessor - Параметры:
-
field- поле для получения, не null - Возвращает:
- значение для поля
- Исключения:
-
DateTimeException- если значение для поля получить невозможно -
UnsupportedTemporalTypeException- если поле не поддерживается -
ArithmeticException- если происходит переполнение числового типа
getYear
public int getYear()
Получает поле года.
Этот метод возвращает примитивное значение int для года.
Год, возвращаемый этим методом, является пролептическим, согласно get(YEAR).
- Возвращает:
- год, от MIN_YEAR до MAX_YEAR
getMonthValue
public int getMonthValue()
Получает поле месяца от 1 до 12.
Этот метод возвращает месяц как int от 1 до 12. Код приложения часто более понятен, если используется перечисление Month, вызывая getMonth().
- Возвращает:
- месяц от 1 до 12
- См. также:
getMonth()
getMonth
public Month getMonth()
Получает поле месяца года, используя перечисление Month.
Этот метод возвращает перечисление Month для месяца. Это предотвращает путаницу в отношении того, что означают значения int. Если вам нужен доступ к примитивному значению int, то перечисление предоставляет int value.
- Возвращает:
- месяц года, не null
- См. также:
getMonthValue()
isLeapYear
public boolean isLeapYear()
Проверяет, является ли год високосным, согласно правилам ISO пролептического календаря.
Этот метод применяет текущие правила для високосных годов на всей временной шкале. В общем случае год является високосным, если он делится на четыре без остатка. Однако годы, делящиеся на 100, не являются високосами, за исключением годов, делящихся на 400, которые являются.
Например, 1904 год — високосный, так как он делится на 4. 1900 год не был високосным, так как он делится на 100, однако 2000 год был високосным, так как он делится на 400.
Вычисление является пролептическим — применяются те же правила как в далёком будущем, так и в далёком прошлом. Это исторически неточно, но верно для стандарта ISO-8601.
- Возвращает:
- true, если год високосный, false в противном случае
isValidDay
public boolean isValidDay(int dayOfMonth)
Проверяет, является ли день месяца допустимым для этого года-месяца.
Этот метод проверяет, образуют ли этот год, месяц и введённый день допустимую дату.
- Параметры:
-
dayOfMonth- день месяца для проверки, от 1 до 31, недопустимое значение возвращает false - Возвращает:
- true, если день допустим для этого года-месяца
lengthOfMonth
public int lengthOfMonth()
Возвращает длительность месяца, учитывая год.
Возвращает длительность месяца в днях. Например, для даты в январе вернёт 31.
- Возвращает:
- длительность месяца в днях, от 28 до 31
lengthOfYear
public int lengthOfYear()
Возвращает длительность года.
Возвращает длительность года в днях, либо 365, либо 366.
- Возвращает:
- 366, если год високосный, 365 в противном случае
with
public YearMonth with(TemporalAdjuster adjuster)
Возвращает скопированную копию этого года-месяца с корректировкой.
Возвращает YearMonth, основанный на этом, с корректировкой года-месяца. Корректировка происходит с использованием указанного объекта стратегии корректировки. Прочитайте документацию корректировщика, чтобы понять, какая корректировка будет произведена.
Простой корректировщик может просто установить одно из полей, например, поле года. Более сложный корректировщик может установить год-месяц на следующий месяц, когда комета Галлея пролетит мимо Земли.
Результат этого метода получается путём вызова метода TemporalAdjuster.adjustInto(Temporal) на указанном корректировщике, передавая this в качестве аргумента.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Определено в:
-
withв интерфейсеTemporal - Параметры:
-
adjuster- используемый корректировщик, не null - Возвращает:
- копию
YearMonthна основеthisс произведённой корректировкой, не null - Исключения:
-
DateTimeException- если корректировка не может быть произведена -
ArithmeticException- если происходит переполнение числового типа
with
public YearMonth with(TemporalField field,
long newValue) Возвращает копию этого года-месяца с указанным полем, установленным на новое значение.
Возвращает YearMonth, основанный на этом, со значением для указанного поля, изменённым. Это может использоваться для изменения любого поддерживаемого поля, такого как год или месяц. Если установить значение невозможно, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то корректировка реализуется здесь. Поддерживаемые поля ведут себя следующим образом:
-
MONTH_OF_YEAR- ВозвращаетYearMonthс указанным месяцем. Год останется без изменений. -
PROLEPTIC_MONTH- ВозвращаетYearMonthс указанным пролептическим месяцем. Это полностью заменяет год и месяц этого объекта. -
YEAR_OF_ERA- ВозвращаетYearMonthс указанным годом эры. Месяц и год эры останутся без изменений. -
YEAR- ВозвращаетYearMonthс указанным годом. Месяц останется без изменений. -
ERA- ВозвращаетYearMonthс указанной эрой. Месяц и год эры останутся без изменений.
Во всех случаях, если новое значение находится вне допустимого диапазона значений для поля, будет выброшено исключение DateTimeException.
Все остальные ChronoField экземпляры выбросят UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путём вызова TemporalField.adjustInto(Temporal, long) с this в качестве аргумента. В этом случае поле определяет, как и нужно ли корректировать момент.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Определено в:
-
withв интерфейсеTemporal - Параметры:
-
field- поле для установки в результате, не null -
newValue- новое значение поля в результате - Возвращает:
- копию
YearMonthна основеthisс заданным полем, не null - Исключения:
-
DateTimeException- если поле нельзя установить -
UnsupportedTemporalTypeException- если поле не поддерживается -
ArithmeticException- если происходит переполнение числового типа
withYear
public YearMonth withYear(int year)
Возвращает копию этого YearMonth с изменённым годом.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
year- год для установки в возвращаемом году-месяце, от MIN_YEAR до MAX_YEAR - Возвращает:
- копию
YearMonthна основе этого года-месяца с запрошенным годом, не null - Исключения:
-
DateTimeException- если значение года недопустимо
withMonth
public YearMonth withMonth(int month)
Возвращает копию этого YearMonth с изменённым месяцем года.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
month- месяц года для установки в возвращаемом году-месяце, от 1 (январь) до 12 (декабрь) - Возвращает:
- копию
YearMonthна основе этого года-месяца с запрошенным месяцем, не null - Исключения:
-
DateTimeException- если значение месяца года недопустимо
plus
public YearMonth plus(TemporalAmount amountToAdd)
Возвращает копию этого года-месяца с добавлением указанной величины.
Возвращает YearMonth, основанный на этом, с добавлением указанной величины. Величина обычно Period, но может быть любого другого типа, реализующего интерфейс TemporalAmount.
Вычисление делегируется объекту величины путём вызова TemporalAmount.addTo(Temporal). Реализация величины свободна реализовывать сложение любым способом, но обычно вызывает plus(long, TemporalUnit). Обратитесь к документации реализации величины, чтобы определить, можно ли её успешно добавить.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Определено в:
-
plusв интерфейсеTemporal - Параметры:
-
amountToAdd- добавляемая величина, не null - Возвращает:
- копию
YearMonthна основе этого года-месяца с произведённым добавлением, не null - Исключения:
-
DateTimeException- если добавление невозможно -
ArithmeticException- если происходит переполнение числового типа
plus
public YearMonth plus(long amountToAdd,
TemporalUnit unit) Возвращает копию этого года-месяца с добавленной указанной величиной.
Это возвращает YearMonth, основанную на этой, с величиной в терминах добавленной единицы измерения. Если добавить величину невозможно, потому что единица измерения не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoUnit, то добавление реализовано здесь. Поддерживаемые поля ведут себя следующим образом:
-
MONTHS- ВозвращаетYearMonthс указанным количеством добавленных месяцев. Это эквивалентноplusMonths(long). -
YEARS- ВозвращаетYearMonthс указанным количеством добавленных лет. Это эквивалентноplusYears(long). -
DECADES- ВозвращаетYearMonthс указанным количеством добавленных десятилетий. Это эквивалентно вызовуplusYears(long)с величиной, умноженной на 10. -
CENTURIES- ВозвращаетYearMonthс указанным количеством добавленных столетий. Это эквивалентно вызовуplusYears(long)с величиной, умноженной на 100. -
MILLENNIA- ВозвращаетYearMonthс указанным количеством добавленных тысячелетий. Это эквивалентно вызовуplusYears(long)с величиной, умноженной на 1000. -
ERAS- ВозвращаетYearMonthс указанным количеством добавленных эр. Поддерживаются только две эры, поэтому величина должна быть равна одному, нулю или минус одному. Если величина отлична от нуля, то год изменяется таким образом, что год эры остается неизменным.
Все остальные ChronoUnit экземпляры выбросят UnsupportedTemporalTypeException.
Если поле не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.addTo(Temporal, long), передавая this в качестве аргумента. В этом случае, единица измерения определяет, следует ли и как выполнить добавление.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Определено в:
-
plusв интерфейсеTemporal - Параметры:
-
amountToAdd- величина единицы измерения, которую нужно добавить к результату, может быть отрицательной -
unit- единица измерения величины, которую нужно добавить, не null - Возвращает:
YearMonthна основе этого года-месяца с добавленной величиной, не null- Выбрасывает:
-
DateTimeException- если добавление невозможно -
UnsupportedTemporalTypeException- если единица измерения не поддерживается -
ArithmeticException- если произошел переполнение числового значения
plusYears
public YearMonth plusYears(long yearsToAdd)
Возвращает копию этого YearMonth с добавлением указанного количества лет.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
yearsToAdd- количество лет для добавления, может быть отрицательным - Возвращает:
YearMonthна основе этого года-месяца с добавленными годами, не null- Выбрасывает:
-
DateTimeException- если результат выходит за поддерживаемый диапазон
plusMonths
public YearMonth plusMonths(long monthsToAdd)
Возвращает копию этого YearMonth с добавлением указанного количества месяцев.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
monthsToAdd- количество месяцев для добавления, может быть отрицательным - Возвращает:
YearMonthна основе этого года-месяца с добавленными месяцами, не null- Выбрасывает:
-
DateTimeException- если результат выходит за поддерживаемый диапазон
minus
public YearMonth minus(TemporalAmount amountToSubtract)
Возвращает копию этого года-месяца с вычтенной указанной величиной.
Это возвращает YearMonth, основанную на этой, с вычтенной указанной величиной. Величина обычно является Period, но может быть любого другого типа, реализующего интерфейс TemporalAmount.
Вычисление делегируется объекту величины с помощью вызова TemporalAmount.subtractFrom(Temporal). Реализация величины свободна реализовывать вычитание любым способом, однако она обычно обращается к minus(long, TemporalUnit). Обратитесь к документации реализации величины, чтобы определить, можно ли успешно произвести вычитание.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Определено в:
-
minusв интерфейсеTemporal - Параметры:
-
amountToSubtract- величина для вычитания, не null - Возвращает:
YearMonthна основе этого года-месяца с выполненным вычитанием, не null- Выбрасывает:
-
DateTimeException- если вычитание невозможно -
ArithmeticException- если произошел переполнение числового значения
minus
public YearMonth minus(long amountToSubtract,
TemporalUnit unit) Возвращает копию этого года-месяца с вычтенной указанной величиной.
Это возвращает YearMonth, основанную на этой, с вычтенной величиной в терминах единицы измерения. Если вычесть величину невозможно, потому что единица измерения не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Этот метод эквивалентен plus(long, TemporalUnit) с отрицательной величиной. Обратитесь к этому методу для получения полного описания того, как работает добавление, а следовательно, и вычитание.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Определено в:
-
minusв интерфейсеTemporal - Параметры:
-
amountToSubtract- величина единицы измерения для вычитания из результата, может быть отрицательной -
unit- единица измерения величины для вычитания, не null - Возвращает:
YearMonthна основе этого года-месяца с вычтенной указанной величиной, не null- Выбрасывает:
-
DateTimeException- если вычитание невозможно -
UnsupportedTemporalTypeException- если единица измерения не поддерживается -
ArithmeticException- если произошел переполнение числового значения
minusYears
public YearMonth minusYears(long yearsToSubtract)
Возвращает копию этого YearMonth с вычтенным указанным количеством лет.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
yearsToSubtract- количество лет для вычитания, может быть отрицательным - Возвращает:
YearMonthна основе этого года-месяца с вычтенными годами, не null- Выбрасывает:
-
DateTimeException- если результат выходит за поддерживаемый диапазон
minusMonths
public YearMonth minusMonths(long monthsToSubtract)
Возвращает копию этого YearMonth с вычтенным указанным количеством месяцев.
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Параметры:
-
monthsToSubtract- количество месяцев для вычитания, может быть отрицательным - Возвращает:
YearMonthна основе этого года-месяца с вычтенными месяцами, не null- Выбрасывает:
-
DateTimeException- если результат выходит за поддерживаемый диапазон
query
public <R> R query(TemporalQuery<R> query)
Запрашивает этот год-месяц с использованием указанного запроса.
Это запрашивает этот год-месяц с использованием указанного объекта стратегии запроса. Объект TemporalQuery определяет логику, которая должна быть использована для получения результата. Прочитайте документацию запроса, чтобы понять, каким будет результат этого метода.
Результат этого метода получается путем вызова метода TemporalQuery.queryFrom(TemporalAccessor) на указанном запросе, передавая this в качестве аргумента.
- Определено в:
-
queryв интерфейсеTemporalAccessor - Параметры типа:
-
R- тип результата - Параметры:
-
query- запрос для вызова, не null - Возвращает:
- результат запроса, может быть возвращено значение null (определяется запросом)
- Выбрасывает:
-
DateTimeException- если запрос не может быть выполнен (определяется запросом) -
ArithmeticException- если произошел переполнение числового значения (определяется запросом)
adjustInto
public Temporal adjustInto(Temporal temporal)
Настраивает указанный временной объект таким образом, чтобы он содержал этот год-месяц.
Это возвращает временной объект того же наблюдаемого типа, что и входной, с годом и месяцем, измененными на такие же, как у этого.
Настройка эквивалентна использованию Temporal.with(TemporalField, long), передавая ChronoField.PROLEPTIC_MONTH в качестве поля. Если указанный временной объект не использует ISO календарь, то выбрасывается DateTimeException.
В большинстве случаев, обратный порядок вызова более понятен, используя Temporal.with(TemporalAdjuster):
// these two lines are equivalent, but the second approach is recommended temporal = thisYearMonth.adjustInto(temporal); temporal = temporal.with(thisYearMonth);
Этот экземпляр неизменяемый и не изменяется этим вызовом метода.
- Определено в:
-
adjustIntoв интерфейсеTemporalAdjuster - Параметры:
-
temporal- целевой объект для настройки, не null - Возвращает:
- отрегулированный объект, не null
- Выбрасывает:
-
DateTimeException- если невозможно произвести настройку -
ArithmeticException- если произошел переполнение числового значения
until
public long until(Temporal endExclusive,
TemporalUnit unit) Вычисляет количество времени до следующего года-месяца в заданных единицах.
Это вычисляет количество времени между двумя объектами YearMonth в терминах одной TemporalUnit. Точки начала и конца — это this и указанный год-месяц. Результат будет отрицательным, если конец предшествует началу. Temporal , переданные в этот метод, преобразуются в YearMonth с помощью from(TemporalAccessor). Например, количество лет между двумя годами-месяцами можно рассчитать с помощью startYearMonth.until(endYearMonth, YEARS).
Вычисление возвращает целое число, представляющее количество полных единиц между двумя годами-месяцами. Например, количество десятилетий между 2012-06 и 2032-05 составит только одно десятилетие, так как до двух десятилетий не хватает одного месяца.
Существует два равнозначных способа использования этого метода. Первый — вызвать этот метод. Второй — использовать TemporalUnit.between(Temporal, Temporal):
// these two lines are equivalent amount = start.until(end, MONTHS); amount = MONTHS.between(start, end);Выбор должен быть сделан на основе того, что делает код более читабельным.
Вычисление реализовано в этом методе для ChronoUnit. Поддерживаются единицы MONTHS, YEARS, DECADES, CENTURIES, MILLENNIA и ERAS. Другие значения ChronoUnit приведут к исключению.
Если единица не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.between(Temporal, Temporal) с this в качестве первого аргумента и преобразованного временного ввода во втором.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- 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 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();
- Returns:
- последняя допустимая дата этого года-месяца, не null
compareTo
public int compareTo(YearMonth other)
Сравнивает этот год-месяц с другим годом-месяцем.
Сравнение основано сначала на значении года, затем на значении месяца. Оно "согласуется с equals", как определено в Comparable.
- Specified by:
-
compareToв интерфейсеComparable<YearMonth> - Parameters:
-
other- другой год-месяц для сравнения, не null - Returns:
- значение сравнения, отрицательное, если меньше, положительное, если больше
isAfter
public boolean isAfter(YearMonth other)
Проверяет, является ли этот год-месяц после указанного года-месяца.
- Parameters:
-
other- другой год-месяц для сравнения, не null - Returns:
- true, если этот год-месяц после указанного
isBefore
public boolean isBefore(YearMonth other)
Проверяет, является ли этот год-месяц до указанного года-месяца.
- Parameters:
-
other- другой год-месяц для сравнения, не null - Returns:
- true, если этот год-месяц до указанного
equals
public boolean equals(Object obj)
Проверяет, равен ли этот год-месяц другому году-месяцу.
Сравнение основано на временном положении годов-месяцев.
- Overrides:
-
equalsв классеObject - Parameters:
-
obj- объект для проверки, null возвращает false - Returns:
- true, если этот год-месяц равен другому
- See Also:
-
Object.hashCode(),HashMap
hashCode
public int hashCode()
Хеш-код для этого года-месяца.
- Overrides:
-
hashCodeв классеObject - Returns:
- подходящий хеш-код
- See Also:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
toString
public String toString()
Выводит этот год-месяц как строку, например 2007-12.
Вывод будет в формате uuuu-MM.
© 1993, 2020, 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/11/docs/api/java.base/java/time/YearMonth.html