Spec-Zone.ru › OpenJDK 27

Перечисление Month

java.lang.Object
java.lang.Enum<Month>
java.time.Month
Все реализуемые интерфейсы:
Serializable, Comparable<Month>, Constable, TemporalAccessor, TemporalAdjuster
public enum Month extends Enum<Month> implements TemporalAccessor, TemporalAdjuster
Месяц года, например «июль».

Month — это перечисление, представляющее 12 месяцев года: январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноябрь и декабрь.

Помимо текстового имени константы перечисления, каждому месяцу года соответствует значение int. Значение int соответствует общепринятому порядку и стандарту ISO-8601: от 1 (январь) до 12 (декабрь). Для большей ясности кода рекомендуется использовать константы перечисления, а не значение int.

Не используйте ordinal() для получения числового представления Month. Вместо этого используйте getValue().

Это перечисление представляет собой распространённое понятие, используемое во многих календарных системах. Поэтому его можно использовать в любой календарной системе, в которой понятие месяца года определено точно так же, как в календарной системе ISO-8601.

Требования к реализации:
Это неизменяемое и потокобезопасное перечисление.
Начиная с версии:
1.8

Краткое описание вложенных классов

Вложенные классы и интерфейсы, объявленные в классе Enum

Enum.EnumDesc<E>
Модификатор и тип Класс Описание
static final class  Enum.EnumDesc<E extends Enum<E>>
Номинальный дескриптор константы enum.

Краткое описание констант перечисления

Константа перечисления Описание
APRIL
Единственный экземпляр месяца апреля, в котором 30 дней.
AUGUST
Единственный экземпляр месяца августа, в котором 31 день.
DECEMBER
Единственный экземпляр месяца декабря, в котором 31 день.
FEBRUARY
Единственный экземпляр месяца февраля, в котором 28 дней или 29 дней в високосный год.
JANUARY
Единственный экземпляр месяца января, в котором 31 день.
JULY
Единственный экземпляр месяца июля, в котором 31 день.
JUNE
Единственный экземпляр месяца июня, в котором 30 дней.
MARCH
Единственный экземпляр месяца марта, в котором 31 день.
MAY
Единственный экземпляр месяца мая, в котором 31 день.
NOVEMBER
Единственный экземпляр месяца ноября, в котором 30 дней.
OCTOBER
Единственный экземпляр месяца октября, в котором 31 день.
SEPTEMBER
Единственный экземпляр месяца сентября, в котором 30 дней.

Краткое описание методов

Модификатор и тип Метод Описание
Temporal adjustInto(Temporal temporal)
Изменяет указанный временной объект, устанавливая для него этот месяц года.
int firstDayOfYear(boolean leapYear)
Возвращает день года, соответствующий первому дню этого месяца.
Month firstMonthOfQuarter()
Возвращает месяц, соответствующий первому месяцу этого квартала.
static Month from(TemporalAccessor temporal)
Создаёт экземпляр Month на основе временного объекта.
int get(TemporalField field)
Возвращает значение указанного поля для этого месяца года в виде int.
String getDisplayName(TextStyle style, Locale locale)
Возвращает текстовое представление, например «янв.» или «декабрь».
long getLong(TemporalField field)
Возвращает значение указанного поля для этого месяца года в виде long.
int getValue()
Возвращает значение int для месяца года.
boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
int length(boolean leapYear)
Возвращает количество дней в этом месяце.
int maxLength()
Возвращает максимальное количество дней в этом месяце.
int minLength()
Возвращает минимальное количество дней в этом месяце.
Month minus(long months)
Возвращает месяц года, находящийся на указанное количество месяцев раньше этого.
static Month of(int month)
Создаёт экземпляр Month на основе значения int.
Month plus(long months)
Возвращает месяц года, находящийся на указанное количество месяцев позже этого.
<R> R query(TemporalQuery<R> query)
Выполняет запрос к этому месяцу года с помощью указанного запроса.
ValueRange range(TemporalField field)
Возвращает диапазон допустимых значений для указанного поля.
static Month valueOf(String name)
Возвращает константу перечисления этого класса с указанным именем.
static Month[] values()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.

Методы, объявленные в классе Enum

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
Модификатор и тип Метод Описание
protected final Object clone()
Выбрасывает CloneNotSupportedException.
final int compareTo(Month o)
Сравнивает это перечисление с указанным объектом, определяя порядок.
final Optional<Enum.EnumDesc<Month>> describeConstable()
Возвращает дескриптор перечисления EnumDesc для этого экземпляра, если его можно создать, или пустой объект Optional, если создать его невозможно.
final boolean equals(Object other)
Возвращает true, если указанный объект равен этой константе перечисления.
protected final void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Метод финализации помечен как устаревший и будет удалён.
final Class<Month> getDeclaringClass()
Возвращает объект Class, соответствующий типу перечисления этой константы.
final int hashCode()
Возвращает хеш-код этой константы перечисления.
final String name()
Возвращает имя этой константы перечисления в точности так, как оно указано в объявлении перечисления.
final int ordinal()
Возвращает порядковый номер этой константы перечисления (её позицию в объявлении перечисления; первой константе присваивается номер 0).
String toString()
Возвращает имя этой константы перечисления, указанное в объявлении.
static <T extends Enum<T>>
T
valueOf(Class<T> enumClass, String name)
Возвращает константу указанного класса перечисления с указанным именем.

Методы, объявленные в классе Object

getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание констант перечисления

JANUARY

public static final Month JANUARY
Единственный экземпляр для января, месяца с 31 днем. Его числовое значение — 1.

FEBRUARY

public static final Month FEBRUARY
Единственный экземпляр для февраля, месяца с 28 днями или 29 днями в високосный год. Его числовое значение — 2.

MARCH

public static final Month MARCH
Единственный экземпляр для марта, месяца с 31 днем. Его числовое значение — 3.

APRIL

public static final Month APRIL
Единственный экземпляр для апреля, месяца с 30 днями. Его числовое значение — 4.

MAY

public static final Month MAY
Единственный экземпляр для мая, месяца с 31 днем. Его числовое значение — 5.

JUNE

public static final Month JUNE
Единственный экземпляр для июня, месяца с 30 днями. Его числовое значение — 6.

JULY

public static final Month JULY
Единственный экземпляр для июля, месяца с 31 днем. Его числовое значение — 7.

AUGUST

public static final Month AUGUST
Единственный экземпляр для августа, месяца с 31 днем. Его числовое значение — 8.

SEPTEMBER

public static final Month SEPTEMBER
Единственный экземпляр для сентября, месяца с 30 днями. Его числовое значение — 9.

OCTOBER

public static final Month OCTOBER
Единственный экземпляр для октября, месяца с 31 днем. Его числовое значение — 10.

NOVEMBER

public static final Month NOVEMBER
Единственный экземпляр для ноября, месяца с 30 днями. Его числовое значение — 11.

DECEMBER

public static final Month DECEMBER
Единственный экземпляр для декабря, месяца с 31 днем. Его числовое значение — 12.

Подробное описание методов

values

public static Month[] values()
Возвращает массив, содержащий константы этого класса перечисления в том порядке, в котором они объявлены.
Возвращает:
массив, содержащий константы этого класса перечисления в том порядке, в котором они объявлены

valueOf

public static Month valueOf(String name)
Возвращает константу перечисления этого класса с указанным именем. Строка должна точно совпадать с идентификатором, использованным для объявления константы перечисления в этом классе. (Лишние пробельные символы не допускаются.)
Параметры:
name — имя константы перечисления, которую нужно вернуть.
Возвращает:
константу перечисления с указанным именем
Вызывает исключение:
IllegalArgumentException — если в этом классе перечисления нет константы с указанным именем
NullPointerException — если аргумент равен null

of

public static Month of(int month)
Создает экземпляр Month на основе значения int.

Month — это перечисление, представляющее 12 месяцев года. Этот фабричный метод позволяет получить значение перечисления на основе значения int. Значение int соответствует стандарту ISO-8601: от 1 (январь) до 12 (декабрь).

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

from

public static Month from(TemporalAccessor temporal)
Создает экземпляр Month из временного объекта.

Получает месяц на основе указанного временного объекта. TemporalAccessor представляет произвольный набор сведений о дате и времени, который этот фабричный метод преобразует в экземпляр Month.

При преобразовании извлекается поле MONTH_OF_YEAR. Извлечение допускается, только если временной объект использует календарную систему ISO или может быть преобразован в LocalDate.

Сигнатура этого метода соответствует сигнатуре функционального интерфейса TemporalQuery, что позволяет использовать его в качестве запроса посредством ссылки на метод, Month::from.

Параметры:
temporal — временной объект для преобразования, не null
Возвращает:
месяц года, не null
Вызывает исключение:
DateTimeException — если преобразование в Month невозможно

getValue

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

Значения нумеруются согласно стандарту ISO-8601: от 1 (январь) до 12 (декабрь).

Возвращает:
месяц года: от 1 (январь) до 12 (декабрь)

getDisplayName

public String getDisplayName(TextStyle style, Locale locale)
Возвращает текстовое представление, например «Jan» или «December».

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

Если текстовое соответствие не найдено, возвращается numeric value.

Параметры:
style — требуемая длина текста, не null
locale — используемая локаль, не null
Возвращает:
текстовое значение месяца года, не null

isSupported

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

Проверяет, можно ли запросить у этого месяца года значение указанного поля. Если результат — false, вызовы методов range и get приведут к исключению.

Если поле — MONTH_OF_YEAR, этот метод возвращает true. Для всех остальных экземпляров ChronoField возвращается false.

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

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

range

public ValueRange range(TemporalField field)
Возвращает диапазон допустимых значений указанного поля.

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

Если поле — MONTH_OF_YEAR, будет возвращен диапазон месяцев года от 1 до 12. Для всех остальных экземпляров ChronoField выбрасывается UnsupportedTemporalTypeException.

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

Определено в:
range в интерфейсе TemporalAccessor
Параметры:
field — поле, для которого запрашивается диапазон, не null
Возвращает:
диапазон допустимых значений поля, не null
Вызывает исключение:
DateTimeException — если диапазон значений поля получить невозможно
UnsupportedTemporalTypeException — если поле не поддерживается

get

public int get(TemporalField field)
Возвращает значение указанного поля этого месяца года в виде int.

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

Если поле — MONTH_OF_YEAR, будет возвращено значение месяца года от 1 до 12. Для всех остальных экземпляров ChronoField выбрасывается UnsupportedTemporalTypeException.

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

Определено в:
get в интерфейсе TemporalAccessor
Параметры:
field — поле, значение которого нужно получить, не null
Возвращает:
значение поля в пределах допустимого диапазона значений
Вызывает исключение:
DateTimeException — если значение поля получить невозможно или оно находится вне допустимого диапазона значений поля
UnsupportedTemporalTypeException — если поле не поддерживается или диапазон значений превышает int
ArithmeticException — при числовом переполнении

getLong

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

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

Если поле — MONTH_OF_YEAR, будет возвращено значение месяца года от 1 до 12. Для всех остальных экземпляров ChronoField выбрасывается UnsupportedTemporalTypeException.

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

Определено в:
getLong в интерфейсе TemporalAccessor
Параметры:
field — поле, значение которого нужно получить, не null
Возвращает:
значение поля
Вызывает исключение:
DateTimeException — если значение поля получить невозможно
UnsupportedTemporalTypeException — если поле не поддерживается
ArithmeticException — при числовом переполнении

plus

public Month plus(long months)
Возвращает месяц года, наступающий через указанное количество месяцев после этого месяца.

При вычислении переход через конец года выполняется циклически: от декабря к январю. Указанный период может быть отрицательным.

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

Параметры:
months — количество месяцев для прибавления, положительное или отрицательное
Возвращает:
результирующий месяц, не null

minus

public Month minus(long months)
Возвращает месяц года, наступающий за указанное количество месяцев до этого месяца.

При вычислении переход через начало года выполняется циклически: от января к декабрю. Указанный период может быть отрицательным.

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

Параметры:
months — количество месяцев для вычитания, положительное или отрицательное
Возвращает:
результирующий месяц, не null

length

public int length(boolean leapYear)
Возвращает количество дней в этом месяце.

Флаг определяет, возвращать ли количество дней для високосного года.

В феврале 28 дней в обычном году и 29 дней в високосном. В апреле, июне, сентябре и ноябре по 30 дней. Во всех остальных месяцах по 31 дню.

Параметры:
leapYear — true, если требуется количество дней для високосного года
Возвращает:
количество дней в этом месяце: от 28 до 31

minLength

public int minLength()
Возвращает минимальное количество дней в этом месяце.

В феврале минимум 28 дней. В апреле, июне, сентябре и ноябре по 30 дней. Во всех остальных месяцах по 31 дню.

Возвращает:
минимальное количество дней в этом месяце: от 28 до 31

maxLength

public int maxLength()
Возвращает максимальное количество дней в этом месяце.

В феврале максимум 29 дней. В апреле, июне, сентябре и ноябре по 30 дней. Во всех остальных месяцах по 31 дню.

Возвращает:
максимальное количество дней в этом месяце: от 29 до 31

firstDayOfYear

public int firstDayOfYear(boolean leapYear)
Возвращает порядковый день года, соответствующий первому дню этого месяца.

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

Параметры:
leapYear — true, если требуется количество дней для високосного года
Возвращает:
порядковый день года, соответствующий первому дню этого месяца: от 1 до 336

firstMonthOfQuarter

public Month firstMonthOfQuarter()
Возвращает месяц, соответствующий первому месяцу этого квартала.

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

Возвращает:
первый месяц квартала, к которому относится этот месяц, не null

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.MONTH_OF_YEAR в качестве поля. Если указанный временной объект не использует календарную систему ISO, выбрасывается DateTimeException.

В большинстве случаев яснее изменить порядок вызова и использовать Temporal.with(TemporalAdjuster):

  // these two lines are equivalent, but the second approach is recommended
  temporal = thisMonth.adjustInto(temporal);
  temporal = temporal.with(thisMonth);

Например, если дана дата в мае, будут выведены следующие значения:

  dateInMay.with(JANUARY);    // four months earlier
  dateInMay.with(APRIL);      // one months earlier
  dateInMay.with(MAY);        // same date
  dateInMay.with(JUNE);       // one month later
  dateInMay.with(DECEMBER);   // seven months later

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

Определено в:
adjustInto в интерфейсе TemporalAdjuster
Параметры:
temporal — целевой объект для изменения, не null
Возвращает:
измененный объект, не null
Вызывает исключение:
DateTimeException — если выполнить изменение невозможно
ArithmeticException — при числовом переполнении

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, где содержатся более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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