Класс 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- если произошел переполнение чисел
формат
public String format(DateTimeFormatter formatter)
Форматирует этот год-месяц с помощью указанного форматировщика.
Этот год-месяц будет передан в форматировщик для получения строки.
- Parameters:
-
formatter- используемый форматировщик, не null - Returns:
- строка отформатированного года-месяца, не null
- Throws:
-
DateTimeException- если при печати произошла ошибка
atDay
public LocalDate atDay(int dayOfMonth)
Объединяет этот год-месяц с числом месяца, чтобы создать LocalDate.
Возвращает LocalDate, сформированный из этого года-месяца и указанного числа месяца.
Значение числа месяца должно быть допустимым для года-месяца.
Этот метод может использоваться как часть цепочки для создания даты:
LocalDate date = year.atMonth(month).atDay(day);
- Parameters:
-
dayOfMonth- число месяца для использования, от 1 до 31 - Returns:
- дата, сформированная из этого года-месяца и указанного числа, не null
- Throws:
-
DateTimeException- если число не является допустимым для года-месяца - See Also:
isValidDay(int)
atEndOfMonth
public LocalDate atEndOfMonth()
Возвращает LocalDate в конце месяца.
Возвращает LocalDate на основе этого года-месяца. Число месяца устанавливается на последнее допустимое число месяца с учетом високосных лет.
Этот метод может использоваться как часть цепочки для создания даты:
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()
Выводит этот год-месяц как String, такой как 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.