Spec-Zone.ru › OpenJDK 8

Класс MonthDay

  • java.lang.Object
    • java.time.MonthDay
Все реализованные интерфейсы:
Serializable, Comparable<MonthDay>, TemporalAccessor, TemporalAdjuster

public final class MonthDay
extends Object
implements TemporalAccessor, TemporalAdjuster, Comparable<MonthDay>, Serializable

День месяца в системе календаря ISO-8601, например --12-03.

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

Этот класс не хранит и не представляет год, время или часовой пояс. Например, значение «3 декабря» может быть сохранен в MonthDay.

Поскольку у MonthDay нет года, високосный день 29 февраля считается допустимым.

Этот класс реализует TemporalAccessor, а не Temporal. Это связано с тем, что нельзя определить, является ли 29 февраля допустимым или нет без внешней информации, что препятствует реализации операций сложения и вычитания. В связи с этим, MonthDay предоставляет только доступ к запросу и установке полей MONTH_OF_YEAR и DAY_OF_MONTH.

Система календаря ISO-8601 — это современная гражданская система календаря, используемая сегодня в большинстве стран мира. Она эквивалентна пролептическому григорианскому календарю, в котором сегодняшние правила високосных годов применяются для всех времен. Для большинства современных приложений правила ISO-8601 полностью подходят. Однако любое приложение, использующее исторические даты и требующее их точности, сочтет подход ISO-8601 непригодным.

Это класс value-based; использование операций, чувствительных к идентичности (включая равенство ссылок (==), хэш-код идентичности или синхронизацию) на экземплярах MonthDay может привести к непредсказуемым результатам и должно быть избегаемо. Для сравнений следует использовать метод equals.

Требования к реализации:
Этот класс неизменяемый и потокобезопасный.
С:
1.8
См. также:
Сериализованная форма

Методы

Модификатор и тип Метод и описание
Temporal adjustInto(Temporal temporal)

Настраивает указанный временной объект так, чтобы он имел этот день месяца.

LocalDate atYear(int year)

Комбинирует этот день месяца с годом, чтобы создать LocalDate.

int compareTo(MonthDay other)

Сравнивает этот день месяца с другим днем месяца.

boolean equals(Object obj)

Проверяет, равен ли этот день месяца другому дню месяца.

String format(DateTimeFormatter formatter)

Форматирует этот день месяца с помощью указанного форматера.

static MonthDay from(TemporalAccessor temporal)

Получает экземпляр MonthDay из временного объекта.

int get(TemporalField field)

Получает значение указанного поля из этого дня месяца как int.

int getDayOfMonth()

Получает поле числа месяца.

long getLong(TemporalField field)

Получает значение указанного поля из этого дня месяца как long.

Month getMonth()

Получает поле месяца года, используя перечисление Month.

int getMonthValue()

Получает поле месяца года от 1 до 12.

int hashCode()

Хэш-код для этого дня месяца.

boolean isAfter(MonthDay other)

Проверяет, является ли этот день месяца после указанного дня месяца.

boolean isBefore(MonthDay other)

Проверяет, является ли этот день месяца до указанного дня месяца.

boolean isSupported(TemporalField field)

Проверяет, поддерживается ли указанное поле.

boolean isValidYear(int year)

Проверяет, является ли год допустимым для этого дня месяца.

static MonthDay now()

Получает текущий день месяца из системных часов в часовом поясе по умолчанию.

static MonthDay now(Clock clock)

Получает текущий день месяца из указанных часов.

static MonthDay now(ZoneId zone)

Получает текущий день месяца из системных часов в указанном часовом поясе.

static MonthDay of(int month, int dayOfMonth)

Получает экземпляр MonthDay.

static MonthDay of(Month month, int dayOfMonth)

Получает экземпляр MonthDay.

static MonthDay parse(CharSequence text)

Получает экземпляр MonthDay из текстовой строки, например --12-03.

static MonthDay parse(CharSequence text, DateTimeFormatter formatter)

Получает экземпляр MonthDay из текстовой строки, используя определенный форматер.

<R> R query(TemporalQuery<R> query)

Запрашивает этот день месяца с помощью указанного запроса.

ValueRange range(TemporalField field)

Получает диапазон допустимых значений для указанного поля.

String toString()

Выводит этот день месяца как String, например --12-03.

MonthDay with(Month month)

Возвращает копию этого MonthDay с изменённым месяцем года.

MonthDay withDayOfMonth(int dayOfMonth)

Возвращает копию этого MonthDay с изменённым днём месяца.

MonthDay withMonth(int month)

Возвращает копию этого MonthDay с изменённым месяцем года.

Методы, унаследованные от класса java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Методы

now

public static MonthDay now()

Получает текущий день месяца из системных часов в часовом поясе по умолчанию.

Это запросит system clock в часовом поясе по умолчанию, чтобы получить текущий день месяца.

Использование этого метода предотвратит возможность использования альтернативных часов для тестирования, поскольку часы жестко закодированы.

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

now

public static MonthDay now(ZoneId zone)

Получает текущий день месяца из системных часов в указанном часовом поясе.

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

Использование этого метода предотвратит возможность использования альтернативных часов для тестирования, поскольку часы жестко закодированы.

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

now

public static MonthDay now(Clock clock)

Получает текущий день месяца из указанных часов.

Это запросит указанные часы, чтобы получить текущий день месяца. Использование этого метода позволяет использовать альтернативные часы для тестирования. Альтернативные часы могут быть введены с помощью dependency injection.

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

of

public static MonthDay of(Month month,
                          int dayOfMonth)

Получает экземпляр MonthDay.

День месяца должен быть допустимым для месяца в високосном году. Следовательно, для февраля день 29 является допустимым.

Например, передача апреля и дня 31 вызовет исключение, так как никогда не может быть 31 апреля в любом году. В отличие от этого, передача 29 февраля разрешена, поскольку этот день месяца может иногда быть допустимым.

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

of

public static MonthDay of(int month,
                          int dayOfMonth)

Получает экземпляр MonthDay.

День месяца должен быть допустимым для месяца в високосном году. Следовательно, для месяца 2 (февраль) день 29 является допустимым.

Например, передача месяца 4 (апрель) и дня 31 вызовет исключение, так как никогда не может быть 31 апреля в любом году. В отличие от этого, передача 29 февраля разрешена, поскольку этот день месяца может иногда быть допустимым.

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

from

public static MonthDay from(TemporalAccessor temporal)

Получает экземпляр MonthDay из временного объекта.

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

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

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

Параметры:
temporal - временной объект для преобразования, не null
Возвращает:
день месяца, не null
Вызывает:
DateTimeException - если невозможно преобразовать в MonthDay

parse

public static MonthDay parse(CharSequence text)

Получает экземпляр MonthDay из текстовой строки, например --12-03.

Строка должна представлять допустимый день месяца. Формат — --MM-dd.

Параметры:
text - текст для анализа, например "--12-03", не null
Возвращает:
разобранный день месяца, не null
Вызывает:
DateTimeParseException - если текст не может быть разобран

parse

public static MonthDay parse(CharSequence text,
                             DateTimeFormatter formatter)

Получает экземпляр MonthDay из текстовой строки с использованием определенного форматера.

Текст разбирается с использованием форматера, возвращая день месяца.

Параметры:
text - текст для анализа, не null
formatter - форматер для использования, не null
Возвращает:
разобранный день месяца, не null
Вызывает:
DateTimeParseException - если текст не может быть разобран

isSupported

public boolean isSupported(TemporalField field)

Проверяет, поддерживается ли указанное поле.

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

Если поле является ChronoField, то запрос реализуется здесь. Поддерживаемые поля:

  • MONTH_OF_YEAR
  • YEAR
Все остальные экземпляры ChronoField вернут false.

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

Указано в:
isSupported в интерфейсе TemporalAccessor
Параметры:
field - поле для проверки, 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 вернет допустимые значения на основе этого дня месяца. Все остальные экземпляры 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 - если происходит переполнение числового типа

getMonthValue

public int getMonthValue()

Возвращает поле месяца от 1 до 12.

Этот метод возвращает месяц как int от 1 до 12. Код приложения часто более понятен, если использовать перечисление Month вызвав метод getMonth().

Возвращает:
номер месяца от 1 до 12
См. также:
getMonth()

getMonth

public Month getMonth()

Возвращает поле месяца от 1 до 12, используя перечисление Month.

Этот метод возвращает перечисление Month для месяца. Это позволяет избежать путаницы, какие int значения означают. Если вам нужен доступ к примитивному значению int, то перечисление предоставляет int value.

Возвращает:
месяц, не null
См. также:
getMonthValue()

getDayOfMonth

public int getDayOfMonth()

Возвращает поле дня месяца.

Этот метод возвращает примитивное значение int для дня месяца.

Возвращает:
день месяца, от 1 до 31

isValidYear

public boolean isValidYear(int year)

Проверяет, является ли год допустимым для этого дня и месяца.

Этот метод проверяет, образуют ли этот месяц, день и введенный год допустимую дату. Он может вернуть false только для 29 февраля.

Параметры:
year - год для проверки
Возвращает:
true, если год допустим для этого дня и месяца
См. также:
Year.isValidMonthDay(MonthDay)

withMonth

public MonthDay withMonth(int month)

Возвращает копию этого MonthDay с изменённым месяцем.

Этот метод возвращает объект month-day со значением указанного месяца. Если число дня некорректно для заданного месяца, оно будет скорректировано до последнего допустимого числа дня в данном месяце.

Этот объект неизменяемый и не изменяется этим методом.

Параметры:
month - месяц для установки в возвращаемом month-day, от 1 (январь) до 12 (декабрь)
Возвращает:
объект MonthDay на основе этого month-day с указанным месяцем, не null
Исключения:
DateTimeException - если значение месяца некорректно

with

public MonthDay with(Month month)

Возвращает копию этого MonthDay с изменённым месяцем.

Этот метод возвращает объект month-day со значением указанного месяца. Если число дня некорректно для заданного месяца, оно будет скорректировано до последнего допустимого числа дня в данном месяце.

Этот объект неизменяемый и не изменяется этим методом.

Параметры:
month - месяц для установки в возвращаемом month-day, не null
Возвращает:
объект MonthDay на основе этого month-day с указанным месяцем, не null

withDayOfMonth

public MonthDay withDayOfMonth(int dayOfMonth)

Возвращает копию этого MonthDay с изменённым днём.

Этот метод возвращает объект month-day со значением указанного дня месяца. Если число дня некорректно для указанного месяца, выбрасывается исключение.

Этот объект неизменяемый и не изменяется этим методом.

Параметры:
dayOfMonth - день месяца для установки в возвращаемом month-day, от 1 до 31
Возвращает:
объект MonthDay на основе этого month-day с указанным днём, не null
Исключения:
DateTimeException - если значение дня месяца некорректно или некорректно для данного месяца

query

public <R> R query(TemporalQuery<R> query)

Запрос к этому month-day с использованием указанного запроса.

Этот метод выполняет запрос к этому month-day с помощью указанного объекта стратегии запроса. Объект TemporalQuery определяет логику для получения результата. Прочитайте документацию запроса, чтобы понять, что будет результатом этого метода.

Результат этого метода получается путем вызова метода TemporalQuery.queryFrom(TemporalAccessor) на указанном запросе с this в качестве аргумента.

Указано в:
query в интерфейсе TemporalAccessor
Параметры типа:
R - тип результата
Параметры:
query - вызываемый запрос, не null
Возвращает:
результат запроса, может быть null (определяется запросом)
Исключения:
DateTimeException - если запрос не удался (определяется запросом)
ArithmeticException - если произошло переполнение числового типа (определяется запросом)

adjustInto

public Temporal adjustInto(Temporal temporal)

Настраивает указанный объект временной шкалы на использование этого month-day.

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

Настройка эквивалентна использованию Temporal.with(TemporalField, long) дважды, передавая ChronoField.MONTH_OF_YEAR и ChronoField.DAY_OF_MONTH в качестве полей. Если указанный объект временной шкалы не использует ISO календарную систему, выбрасывается DateTimeException.

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

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

Этот объект неизменяемый и не изменяется этим методом.

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

format

public String format(DateTimeFormatter formatter)

Форматирует этот month-day с использованием указанного форматера.

Этот month-day будет передан форматеру для получения строки.

Параметры:
formatter - используемый форматер, не null
Возвращает:
строка, форматированный month-day, не null
Исключения:
DateTimeException - если произошла ошибка во время вывода

atYear

public LocalDate atYear(int year)

Объединяет этот month-day с годом для создания LocalDate.

Этот метод возвращает LocalDate, сформированную из этого month-day и указанного года.

Если month-day 29 февраля, он будет изменён на 28 февраля в результирующей дате, если год не високосный.

Этот объект неизменяемый и не изменяется этим методом.

Параметры:
year - используемый год, от MIN_YEAR до MAX_YEAR
Возвращает:
дата, сформированная из этого month-day и указанного года, не null
Исключения:
DateTimeException - если год выходит за допустимый диапазон

compareTo

public int compareTo(MonthDay other)

Сравнивает этот month-day с другим month-day.

Сравнение выполняется сначала по значению месяца, а затем по значению дня. Оно "совместимо с equals", как определено в Comparable.

Указано в:
compareTo в интерфейсе Comparable<MonthDay>
Параметры:
other - другой month-day для сравнения, не null
Возвращает:
значение компаратора, отрицательное, если меньше, положительное, если больше

isAfter

public boolean isAfter(MonthDay other)

Проверяет, следует ли этот month-day после указанного month-day.

Параметры:
other - другой month-day для сравнения, не null
Возвращает:
true, если этот month-day следует после указанного

isBefore

public boolean isBefore(MonthDay other)

Проверяет, предшествует ли этот month-day указанному month-day.

Параметры:
other - другой month-day для сравнения, не null
Возвращает:
true, если этот month-day предшествует указанному

equals

public boolean equals(Object obj)

Проверяет, равен ли этот month-day другому month-day.

Сравнение основано на временной позиции month-day в году.

Переопределяет:
equals в классе Object
Параметры:
obj - объект для проверки, null возвращает false
Возвращает:
true, если этот month-day равен другому
См. также:
Object.hashCode(), HashMap

hashCode

public int hashCode()

Хэш-код для этого month-day.

Переопределяет:
hashCode в классе Object
Возвращает:
подходящий хэш-код
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

toString

public String toString()

Выводит этот month-day в виде String, например --12-03.

Вывод будет в формате --MM-dd.

Переопределяет:
toString в классе Object
Возвращает:
строковое представление этого month-day, не null

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

Spec-Zone.ru

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