Spec-Zone.ru › OpenJDK 25

Класс перечисления 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>

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

Константа перечисления Описание
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

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

getClass, notify, notifyAll, wait, wait, wait

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

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)
Возвращает текстовое представление, например «янв.» или «декабрь».

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

Если текстовое соответствие не найдено, возвращается 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/time/Month.html

Spec-Zone.ru

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