Spec-Zone.ru › OpenJDK 24

Класс LocalDate

java.lang.Object
java.time.LocalDate
Все реализуемые интерфейсы:
Serializable, Comparable<ChronoLocalDate>, ChronoLocalDate, Temporal, TemporalAccessor, TemporalAdjuster
public final class LocalDate extends Object implements Temporal, TemporalAdjuster, ChronoLocalDate, Serializable
Дата без часового пояса в системе календаря ISO-8601, например, 2007-12-03.

LocalDate — это неизменяемый объект даты и времени, представляющий дату, часто рассматриваемую как год-месяц-день. Доступны и другие поля даты, такие как день года, день недели и неделя года. Например, значение "2 октября 2007 года" может быть сохранено в LocalDate.

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

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

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

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

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

Модификатор и тип Поле Описание
static final LocalDate EPOCH
Эпохальный год LocalDate, '1970-01-01'.
static final LocalDate MAX
Максимальная поддерживаемая LocalDate, '+999999999-12-31'.
static final LocalDate MIN
Минимальная поддерживаемая LocalDate, '-999999999-01-01'.

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

Модификатор и тип Метод Описание
Temporal adjustInto(Temporal temporal)
Настраивает указанный временной объект так, чтобы его дата совпадала с датой этого объекта.
LocalDateTime atStartOfDay()
Объединяет эту дату со временем полуночи, чтобы создать LocalDateTime в начале этой даты.
ZonedDateTime atStartOfDay(ZoneId zone)
Возвращает временную метку со временем в заданной временной зоне на основе этой даты в самое раннее допустимое время согласно правилам временной зоны.
LocalDateTime atTime(int hour, int minute)
Объединяет эту дату со временем, чтобы создать LocalDateTime.
LocalDateTime atTime(int hour, int minute, int second)
Объединяет эту дату со временем, чтобы создать LocalDateTime.
LocalDateTime atTime(int hour, int minute, int second, int nanoOfSecond)
Объединяет эту дату со временем, чтобы создать LocalDateTime.
LocalDateTime atTime(LocalTime time)
Объединяет эту дату со временем, чтобы создать LocalDateTime.
OffsetDateTime atTime(OffsetTime time)
Объединяет эту дату со временем с смещением, чтобы создать OffsetDateTime.
int compareTo(ChronoLocalDate other)
Сравнивает эту дату с другой датой.
Stream<LocalDate> datesUntil(LocalDate endExclusive)
Возвращает упорядоченную последовательность дат.
Stream<LocalDate> datesUntil(LocalDate endExclusive, Period step)
Возвращает упорядоченную последовательность дат с заданным шагом.
boolean equals(Object obj)
Проверяет, равна ли эта дата другой дате.
String format(DateTimeFormatter formatter)
Форматирует эту дату с использованием указанного форматировщика.
static LocalDate from(TemporalAccessor temporal)
Получает экземпляр LocalDate из временного объекта.
int get(TemporalField field)
Получает значение указанного поля из этой даты как int.
IsoChronology getChronology()
Получает хронологию этой даты, которая представляет собой ISO календарную систему.
int getDayOfMonth()
Получает поле дня месяца.
DayOfWeek getDayOfWeek()
Получает поле дня недели, которое является перечислением DayOfWeek.
int getDayOfYear()
Получает поле порядкового номера дня в году.
IsoEra getEra()
Получает эру, применимую к этой дате.
long getLong(TemporalField field)
Получает значение указанного поля из этой даты как long.
Month getMonth()
Получает поле месяца года, используя перечисление Month.
int getMonthValue()
Получает поле месяца года от 1 до 12.
int getYear()
Получает поле года.
int hashCode()
Хеш-код для этой даты.
boolean isAfter(ChronoLocalDate other)
Проверяет, следует ли эта дата после указанной даты.
boolean isBefore(ChronoLocalDate other)
Проверяет, предшествует ли эта дата указанной дате.
boolean isEqual(ChronoLocalDate other)
Проверяет, равна ли эта дата указанной дате.
boolean isLeapYear()
Проверяет, является ли год високосным годом согласно правилам ISO пролептической календарной системы.
boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанная единица измерения.
int lengthOfMonth()
Возвращает длительность месяца, представленного этой датой.
int lengthOfYear()
Возвращает длительность года, представленного этой датой.
LocalDate minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этой даты со значением, уменьшенным на указанное значение.
LocalDate minus(TemporalAmount amountToSubtract)
Возвращает копию этой даты со значением, уменьшенным на указанное значение.
LocalDate minusDays(long daysToSubtract)
Возвращает копию этой LocalDate со значением, уменьшенным на указанное количество дней.
LocalDate minusMonths(long monthsToSubtract)
Возвращает копию этой LocalDate со значением, уменьшенным на указанное количество месяцев.
LocalDate minusWeeks(long weeksToSubtract)
Возвращает копию этой LocalDate со значением, уменьшенным на указанное количество недель.
LocalDate minusYears(long yearsToSubtract)
Возвращает копию этой LocalDate со значением, уменьшенным на указанное количество лет.
static LocalDate now()
Получает текущую дату из системных часов в часовой зоне по умолчанию.
static LocalDate now(Clock clock)
Получает текущую дату из указанных часов.
static LocalDate now(ZoneId zone)
Получает текущую дату из системных часов в указанной часовой зоне.
static LocalDate of(int year, int month, int dayOfMonth)
Получает экземпляр LocalDate по году, месяцу и дню.
static LocalDate of(int year, Month month, int dayOfMonth)
Получает экземпляр LocalDate по году, месяцу и дню.
static LocalDate ofEpochDay(long epochDay)
Получает экземпляр LocalDate по счетчику дней с эпохи.
static LocalDate ofInstant(Instant instant, ZoneId zone)
Получает экземпляр LocalDate из Instant и идентификатора временной зоны.
static LocalDate ofYearDay(int year, int dayOfYear)
Получает экземпляр LocalDate по году и дню в году.
static LocalDate parse(CharSequence text)
Получает экземпляр LocalDate из текстовой строки, например, 2007-12-03.
static LocalDate parse(CharSequence text, DateTimeFormatter formatter)
Получает экземпляр LocalDate из текстовой строки с использованием определенного форматировщика.
LocalDate plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этой даты со значением, увеличенным на указанное значение.
LocalDate plus(TemporalAmount amountToAdd)
Возвращает копию этой даты со значением, увеличенным на указанное значение.
LocalDate plusDays(long daysToAdd)
Возвращает копию этой LocalDate со значением, увеличенным на указанное количество дней.
LocalDate plusMonths(long monthsToAdd)
Возвращает копию этой LocalDate со значением, увеличенным на указанное количество месяцев.
LocalDate plusWeeks(long weeksToAdd)
Возвращает копию этой LocalDate со значением, увеличенным на указанное количество недель.
LocalDate plusYears(long yearsToAdd)
Возвращает копию этой LocalDate со значением, увеличенным на указанное количество лет.
<R> R query(TemporalQuery<R> query)
Обрабатывает эту дату с использованием заданного запроса.
ValueRange range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.
long toEpochSecond(LocalTime time, ZoneOffset offset)
Преобразует эту LocalDate в количество секунд с эпохи 1970-01-01T00:00:00Z.
String toString()
Выводит эту дату как String, например, 2007-12-03.
Period until(ChronoLocalDate endDateExclusive)
Вычисляет период между этой датой и другой датой как Period.
long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет продолжительность времени до другой даты в указанной единице измерения.
LocalDate with(TemporalAdjuster adjuster)
Возвращает скорректированную копию этой даты.
LocalDate with(TemporalField field, long newValue)
Возвращает копию этой даты со значением указанного поля, установленным в новое значение.
LocalDate with(TemporalField field, long newValue)
Возвращает копию этой LocalDate с изменённым днём месяца.
LocalDate withDayOfYear(int dayOfYear)
Возвращает копию этой LocalDate с изменённым номером дня года.
LocalDate withMonth(int month)
Возвращает копию этой LocalDate с изменённым месяцем года.
LocalDate withYear(int year)
Возвращает копию этой LocalDate с изменённым годом.

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

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

Методы, объявленные в интерфейсе java.time.chrono.ChronoLocalDate

toEpochDay

Подробное описание полей

MIN

public static final LocalDate MIN
Минимаемая поддерживаемая дата, '-999999999-01-01'. Может использоваться приложением в качестве даты "давнего прошлого".

MAX

public static final LocalDate MAX
Максимальная поддерживаемая дата, '+999999999-12-31'. Может использоваться приложением в качестве даты "далёкого будущего".

EPOCH

public static final LocalDate EPOCH
Год эпохи LocalDate, '1970-01-01'.
С момента:
9

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

now

public static LocalDate now()
Получает текущую дату из системных часов в часовом поясе по умолчанию.

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

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

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

now

public static LocalDate now(ZoneId zone)
Получает текущую дату из системных часов в указанном часовом поясе.

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

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

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

now

public static LocalDate now(Clock clock)
Получает текущую дату из указанных часов.

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

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

of

public static LocalDate of(int year, Month month, int dayOfMonth)
Получает экземпляр LocalDate по году, месяцу и дню.

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

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

of

public static LocalDate of(int year, int month, int dayOfMonth)
Получает экземпляр LocalDate по году, месяцу и дню.

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

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

ofYearDay

public static LocalDate ofYearDay(int year, int dayOfYear)
Получает экземпляр LocalDate по году и дню года.

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

Параметры:
year - год для представления, от MIN_YEAR до MAX_YEAR
dayOfYear - день года для представления, от 1 до 366
Возвращает:
локальную дату, не null
Выбрасывает:
DateTimeException - если значение любого поля находится вне диапазона или если день года недопустим для года

ofInstant

public static LocalDate ofInstant(Instant instant, ZoneId zone)
Получает экземпляр LocalDate из Instant и идентификатора часового пояса.

Создаёт локальную дату на основе указанного момента времени. Сначала определяется смещение от UTC/Гринвича с помощью идентификатора часового пояса и момента, что просто, поскольку существует только одно допустимое смещение для каждого момента времени. Затем момент времени и смещение используются для вычисления локальной даты.

Параметры:
instant - момент времени для создания даты, не null
zone - часовой пояс, который может быть смещением, не null
Возвращает:
локальную дату, не null
Выбрасывает:
DateTimeException - если результат выходит за поддерживаемый диапазон
С момента:
9

ofEpochDay

public static LocalDate ofEpochDay(long epochDay)
Получает экземпляр LocalDate по количеству дней с эпохи.

Возвращает LocalDate с указанным количеством дней с эпохи. EPOCH_DAY — это простое нарастающее количество дней, где день 0 — 1970-01-01. Отрицательные числа представляют более ранние дни.

Параметры:
epochDay - количество дней с эпохи (1970-01-01)
Возвращает:
локальную дату, не null
Выбрасывает:
DateTimeException - если количество дней с эпохи выходит за поддерживаемый диапазон дат

from

public static LocalDate from(TemporalAccessor temporal)
Получает экземпляр LocalDate из временного объекта.

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

Преобразование выполняется с использованием запроса TemporalQueries.localDate(), который полагается на извлечение поля EPOCH_DAY.

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

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

parse

public static LocalDate parse(CharSequence text)
Получает экземпляр LocalDate из текстовой строки, например, 2007-12-03.

Строка должна представлять собой допустимую дату и анализируется с помощью DateTimeFormatter.ISO_LOCAL_DATE.

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

parse

public static LocalDate parse(CharSequence text, DateTimeFormatter formatter)
Получает экземпляр LocalDate из текстовой строки с помощью определенного форматера.

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

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

isSupported

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

Проверяет, можно ли запросить у этой даты указанное поле. Если ложь, то вызов методов range, get и with(TemporalField, long) вызовет исключение.

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

  • DAY_OF_WEEK
  • ALIGNED_DAY_OF_WEEK_IN_MONTH
  • ALIGNED_DAY_OF_WEEK_IN_YEAR
  • DAY_OF_MONTH
  • DAY_OF_YEAR
  • EPOCH_DAY
  • ALIGNED_WEEK_OF_MONTH
  • ALIGNED_WEEK_OF_YEAR
  • MONTH_OF_YEAR
  • PROLEPTIC_MONTH
  • YEAR_OF_ERA
  • YEAR
  • ERA
Все остальные ChronoField экземпляры вернут false.

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

Specified by:
isSupported в интерфейсе ChronoLocalDate
Specified by:
isSupported в интерфейсе TemporalAccessor
Parameters:
field - поле для проверки, null возвращает false
Returns:
true, если поле поддерживается в этой дате, false, если нет

isSupported

public boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанный элемент.

Проверяет, можно ли добавить или вычесть указанный элемент из этой даты. Если ложь, то вызов методов plus(long, TemporalUnit) и minus вызовет исключение.

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

  • DAYS
  • WEEKS
  • MONTHS
  • YEARS
  • DECADES
  • CENTURIES
  • MILLENNIA
  • ERAS
Все остальные ChronoUnit экземпляры вернут false.

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

Specified by:
isSupported в интерфейсе ChronoLocalDate
Specified by:
isSupported в интерфейсе Temporal
Parameters:
unit - элемент для проверки, null возвращает false
Returns:
true, если элемент можно добавить/вычесть, false, если нет

range

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

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

Если поле является ChronoField, то запрос реализуется здесь. supported fields вернет соответствующие экземпляры диапазона. Все остальные ChronoField экземпляры вызовут UnsupportedTemporalTypeException.

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

Specified by:
range в интерфейсе TemporalAccessor
Parameters:
field - поле, для которого необходимо получить диапазон, не null
Returns:
диапазон допустимых значений для поля, не null
Throws:
DateTimeException - если диапазон для поля получить нельзя
UnsupportedTemporalTypeException - если поле не поддерживается

get

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

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

Если поле является ChronoField, то запрос реализуется здесь. supported fields вернет допустимые значения на основе этой даты, за исключением EPOCH_DAY и PROLEPTIC_MONTH, которые слишком велики для int и вызывают UnsupportedTemporalTypeException. Все остальные ChronoField экземпляры вызовут UnsupportedTemporalTypeException.

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

Specified by:
get в интерфейсе TemporalAccessor
Parameters:
field - поле для получения, не null
Returns:
значение для поля
Throws:
DateTimeException - если значение для поля получить нельзя или значение находится за пределами допустимого диапазона значений для поля
UnsupportedTemporalTypeException - если поле не поддерживается или диапазон значений превышает int
ArithmeticException - если происходит переполнение числовых значений

getLong

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

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

Если поле является ChronoField, то запрос реализуется здесь. supported fields вернет допустимые значения на основе этой даты. Все остальные ChronoField экземпляры вызовут UnsupportedTemporalTypeException.

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

Specified by:
getLong в интерфейсе TemporalAccessor
Parameters:
field - поле для получения, не null
Returns:
значение для поля
Throws:
DateTimeException - если значение для поля получить нельзя
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - если происходит переполнение числовых значений

getChronology

public IsoChronology getChronology()
Возвращает хронологию этой даты, которая является системой календаря ISO.

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

Specified by:
getChronology в интерфейсе ChronoLocalDate
Returns:
хронология ISO, не null

getEra

public IsoEra getEra()
Возвращает эпоху, применимую к этой дате.

Официальная спецификация ISO-8601 не определяет эпохи, однако IsoChronology делает это. Она определяет две эпохи: 'CE' с года одного и 'BCE' с года нулевого назад. Поскольку даты до перехода Юлианско-Григорианского календаря не соответствуют истории, переход между 'BCE' и 'CE' также не соответствует обычно используемым эпохам, часто обозначаемым 'BC' и 'AD'.

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

Specified by:
getEra в интерфейсе ChronoLocalDate
Returns:
применимая IsoEra к этой дате, не null

getYear

public int getYear()
Возвращает поле года.

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

Год, возвращаемый этим методом, является пролептическим, как указано в get(YEAR). Чтобы получить год эпохи, используйте get(YEAR_OF_ERA).

Returns:
год, от 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()

getDayOfMonth

public int getDayOfMonth()
Получает поле дня месяца.

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

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

getDayOfYear

public int getDayOfYear()
Получает поле дня года.

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

Возвращает:
день года, от 1 до 365, или 366 в високосном году

getDayOfWeek

public DayOfWeek getDayOfWeek()
Получает поле дня недели, которое является перечислением DayOfWeek.

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

Дополнительную информацию можно получить из DayOfWeek. Это включает текстовые имена значений.

Возвращает:
день недели, не null

isLeapYear

public boolean isLeapYear()
Проверяет, является ли год високосным, согласно правилам ISO пролептического календаря.

Этот метод применяет текущие правила для високосных годов на всей временной шкале. В общем случае год является високосным, если он делится на четыре без остатка. Однако годы, делящиеся на 100, не являются високосными, за исключением годов, делящихся на 400, которые являются.

Например, 1904 год високосный, так как он делится на 4. 1900 год не был високосным, так как он делится на 100, однако 2000 год был високосным, так как он делится на 400.

Вычисление пролептическое - оно применяет те же правила в далёком будущем и далёком прошлом. Это исторически неточно, но верно для стандарта ISO-8601.

Указано в:
isLeapYear в интерфейсе ChronoLocalDate
Возвращает:
true, если год високосный, иначе false

lengthOfMonth

public int lengthOfMonth()
Возвращает длительность месяца, представленного этой датой.

Это возвращает длительность месяца в днях. Например, дата в январе вернёт 31.

Указано в:
lengthOfMonth в интерфейсе ChronoLocalDate
Возвращает:
длительность месяца в днях

lengthOfYear

public int lengthOfYear()
Возвращает длительность года, представленного этой датой.

Это возвращает длительность года в днях, либо 365, либо 366.

Указано в:
lengthOfYear в интерфейсе ChronoLocalDate
Возвращает:
366, если год високосный, иначе 365

with

public LocalDate with(TemporalAdjuster adjuster)
Возвращает скопированную дату с корректировкой.

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

Простой корректировщик может просто установить одно из полей, например, поле года. Более сложный корректировщик может установить дату на последний день месяца.

Выбор общих корректировок представлен в TemporalAdjusters. Они включают нахождение "последнего дня месяца" и "следующей среды". Ключевые классы даты и времени также реализуют интерфейс TemporalAdjuster, такие как Month и MonthDay. Корректировщик отвечает за обработку особых случаев, таких как переменная длина месяца и високосные годы.

Например, этот код возвращает дату последнего дня июля:

  import static java.time.Month.*;
  import static java.time.temporal.TemporalAdjusters.*;

  result = localDate.with(JULY).with(lastDayOfMonth());
 

Результат этого метода получается путём вызова метода TemporalAdjuster.adjustInto(Temporal) на указанном корректировщике, передавая this в качестве аргумента.

Этот экземпляр неизменяемый и не изменяется этим методом.

Указано в:
with в интерфейсе ChronoLocalDate
Указано в:
with в интерфейсе Temporal
Параметры:
adjuster - корректировщик для использования, не null
Возвращает:
новая дата, основанная на this с произведённой корректировкой, не null
Исключения:
DateTimeException - если корректировка не может быть произведена
ArithmeticException - если происходит переполнение числовых значений

с

public LocalDate with(TemporalField field, long newValue)
Возвращает копию этой даты со значением указанного поля, установленным в новое значение.

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

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

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

  • DAY_OF_WEEK - Возвращает LocalDate со значением указанного дня недели. Дата корректируется на срок до 6 дней вперёд или назад в рамках границ недели с понедельника по воскресенье.
  • ALIGNED_DAY_OF_WEEK_IN_MONTH - Возвращает LocalDate со значением указанного выровненного дня недели. Дата корректируется до указанного выровненного дня недели, основанного на месяце. Выровненные недели считаются так, что первая неделя данного месяца начинается с первого дня этого месяца. Это может привести к тому, что дата будет смещена до 6 дней в следующий месяц.
  • ALIGNED_DAY_OF_WEEK_IN_YEAR - Возвращает LocalDate со значением указанного выровненного дня недели. Дата корректируется до указанного выровненного дня недели, основанного на году. Выровненные недели считаются так, что первая неделя данного года начинается с первого дня этого года. Это может привести к тому, что дата будет смещена до 6 дней в следующий год.
  • DAY_OF_MONTH - Возвращает LocalDate со значением указанного дня месяца. Месяц и год останутся неизменными. Если день месяца недопустим для года и месяца, то выбрасывается DateTimeException.
  • DAY_OF_YEAR - Возвращает LocalDate со значением указанного дня года. Год останется неизменным. Если день года недопустим для года, то выбрасывается DateTimeException.
  • EPOCH_DAY - Возвращает LocalDate со значением указанного дня эпохи. Это полностью заменяет дату и эквивалентно ofEpochDay(long).
  • ALIGNED_WEEK_OF_MONTH - Возвращает LocalDate со значением указанной выровненной недели месяца. Выровненные недели считаются так, что первая неделя данного месяца начинается с первого дня этого месяца. Эта корректировка перемещает дату на целые недели, чтобы соответствовать указанной неделе. Результат будет иметь тот же день недели, что и эта дата. Это может привести к тому, что дата будет смещена в следующий месяц.
  • ALIGNED_WEEK_OF_YEAR - Возвращает LocalDate со значением указанной выровненной недели года. Выровненные недели считаются так, что первая неделя данного года начинается с первого дня этого года. Эта корректировка перемещает дату на целые недели, чтобы соответствовать указанной неделе. Результат будет иметь тот же день недели, что и эта дата. Это может привести к тому, что дата будет смещена в следующий год.
  • MONTH_OF_YEAR - Возвращает LocalDate со значением указанного месяца года. Год останется неизменным. День месяца также останется неизменным, если он будет допустимым для нового месяца и года. В противном случае день месяца корректируется до максимального допустимого значения для нового месяца и года.
  • PROLEPTIC_MONTH - Возвращает LocalDate со значением указанного пролептического месяца. День месяца останется неизменным, если он будет допустимым для нового месяца и года. В противном случае день месяца корректируется до максимального допустимого значения для нового месяца и года.
  • YEAR_OF_ERA - Возвращает LocalDate со значением указанного года эпохи. Эпоха и месяц останутся неизменными. День месяца также останется неизменным, если он будет допустимым для нового месяца и года. В противном случае день месяца корректируется до максимального допустимого значения для нового месяца и года.
  • YEAR - Возвращает LocalDate со значением указанного года. Месяц останется неизменным. День месяца также останется неизменным, если он будет допустимым для нового месяца и года. В противном случае день месяца корректируется до максимального допустимого значения для нового месяца и года.
  • ERA - Возвращает LocalDate со значением указанной эпохи. Год эпохи и месяц останутся неизменными. День месяца также останется неизменным, если он будет допустимым для нового месяца и года. В противном случае день месяца корректируется до максимального допустимого значения для нового месяца и года.

Во всех случаях, если новое значение находится вне допустимого диапазона значений для поля, будет выброшено DateTimeException.

Все остальные ChronoField экземпляры будут вызывать UnsupportedTemporalTypeException.

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

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

Указано в:
with в интерфейсе ChronoLocalDate
Указано в:
with в интерфейсе Temporal
Параметры:
field - поле для установки в результате, не null
newValue - новое значение поля в результате
Возвращает:
новая LocalDate, основанная на this со значением указанного поля, не null
И вызывает:
DateTimeException - если поле нельзя установить
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - если происходит переполнение числового типа

сГодом

public LocalDate withYear(int year)
Возвращает копию этого LocalDate с изменённым годом.

Если день месяца недействителен для года, он будет изменён на последний допустимый день месяца.

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

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

сМесяцем

public LocalDate withMonth(int month)
Возвращает копию этого LocalDate с изменённым месяцем года.

Если день месяца недействителен для года, он будет изменён на последний допустимый день месяца.

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

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

сДнёмМесяца

public LocalDate withDayOfMonth(int dayOfMonth)
Возвращает копию этого LocalDate с изменённым днём месяца.

Если результирующая дата недействительна, выбрасывается исключение.

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

Параметры:
dayOfMonth - день месяца для установки в результате, от 1 до 28-31
Возвращает:
новая LocalDate, основанная на этой дате с запрошенным днём, не null
И вызывает:
DateTimeException - если значение дня месяца недопустимо или если день месяца недопустим для месяца и года

сДнёмГода

public LocalDate withDayOfYear(int dayOfYear)
Возвращает копию этого LocalDate с изменённым днём года.

Если результирующая дата недействительна, выбрасывается исключение.

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

Параметры:
dayOfYear - день года для установки в результате, от 1 до 365-366
Возвращает:
новая LocalDate, основанная на этой дате с запрошенным днём, не null
И вызывает:
DateTimeException - если значение дня года недопустимо или если день года недопустим для года

плюс

public LocalDate plus(TemporalAmount amountToAdd)
Возвращает копию этой даты с добавленной указанной величиной.

Возвращает новую LocalDate, основанную на этой, с добавленной указанной величиной. Величина обычно Period, но может быть любого другого типа, реализующего интерфейс TemporalAmount.

Вычисление делегируется объекту величины с вызовом TemporalAmount.addTo(Temporal). Реализация величины свободна реализовать добавление любым способом, однако она обычно вызывает plus(long, TemporalUnit). Обратитесь к документации реализации величины, чтобы определить, можно ли её успешно добавить.

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

Указано в:
plus в интерфейсе ChronoLocalDate
Указано в:
plus в интерфейсе Temporal
Параметры:
amountToAdd - величина для добавления, не null
Возвращает:
новая LocalDate, основанная на этой дате с произведённым добавлением, не null
И вызывает:
DateTimeException - если добавление невозможно
ArithmeticException - если происходит переполнение числового типа

plus

public LocalDate plus(long amountToAdd, TemporalUnit unit)
Возвращает копию этой даты, к которой добавлено указанное количество.

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

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

Если поле является ChronoUnit, то добавление реализуется здесь. Поддерживаемые поля ведут себя следующим образом:

  • DAYS - Возвращает LocalDate с указанным числом добавленных дней. Это эквивалентно plusDays(long).
  • WEEKS - Возвращает LocalDate с указанным числом добавленных недель. Это эквивалентно plusWeeks(long) и использует 7-дневную неделю.
  • MONTHS - Возвращает LocalDate с указанным числом добавленных месяцев. Это эквивалентно plusMonths(long). День месяца останется неизменным, только если он не будет недопустимым для нового месяца и года. В этом случае день месяца корректируется до максимального допустимого значения для нового месяца и года.
  • YEARS - Возвращает LocalDate с указанным числом добавленных лет. Это эквивалентно plusYears(long). День месяца останется неизменным, только если он не будет недопустимым для нового месяца и года. В этом случае день месяца корректируется до максимального допустимого значения для нового месяца и года.
  • DECADES - Возвращает LocalDate с указанным числом добавленных десятилетий. Это эквивалентно вызову plusYears(long) с количеством, умноженным на 10. День месяца останется неизменным, только если он не будет недопустимым для нового месяца и года. В этом случае день месяца корректируется до максимального допустимого значения для нового месяца и года.
  • CENTURIES - Возвращает LocalDate с указанным числом добавленных столетий. Это эквивалентно вызову plusYears(long) с количеством, умноженным на 100. День месяца останется неизменным, только если он не будет недопустимым для нового месяца и года. В этом случае день месяца корректируется до максимального допустимого значения для нового месяца и года.
  • MILLENNIA - Возвращает LocalDate с указанным числом добавленных тысячелетий. Это эквивалентно вызову plusYears(long) с количеством, умноженным на 1000. День месяца останется неизменным, только если он не будет недопустимым для нового месяца и года. В этом случае день месяца корректируется до максимального допустимого значения для нового месяца и года.
  • ERAS - Возвращает LocalDate с указанным числом добавленных эр. Поддерживаются только две эры, поэтому количество должно быть равно одному, нулю или минус одному. Если количество отлично от нуля, то год изменяется таким образом, что год эры остается неизменным. День месяца останется неизменным, только если он не будет недопустимым для нового месяца и года. В этом случае день месяца корректируется до максимального допустимого значения для нового месяца и года.

Все остальные ChronoUnit экземпляры будут выбрасывать UnsupportedTemporalTypeException.

Если поле не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.addTo(Temporal, long), передавая this в качестве аргумента. В этом случае единица измерения определяет, следует ли и как выполнять добавление.

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

Specified by:
plus в интерфейсе ChronoLocalDate
Specified by:
plus в интерфейсе Temporal
Parameters:
amountToAdd - количество единиц измерения, добавляемых к результату, может быть отрицательным
unit - единица измерения количества, добавляемого, не null
Returns:
LocalDate, основанная на этой дате с добавленным указанным количеством, не null
Throws:
DateTimeException - если добавление невозможно
UnsupportedTemporalTypeException - если единица измерения не поддерживается
ArithmeticException - если происходит переполнение числового значения

plusYears

public LocalDate plusYears(long yearsToAdd)
Возвращает копию этой LocalDate с добавлением указанного количества лет.

Этот метод добавляет указанное количество к полю years в три шага:

  1. Добавить введенные годы к полю года
  2. Проверить, будет ли результирующая дата недопустимой
  3. Откорректировать день месяца до последнего допустимого дня, если необходимо

Например, 2008-02-29 (високосный год) плюс один год приведет к недопустимой дате 2009-02-29 (обычный год). Вместо возвращения недопустимого результата вместо этого выбирается последний допустимый день месяца, 2009-02-28.

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

Parameters:
yearsToAdd - добавляемые годы, могут быть отрицательными
Returns:
LocalDate, основанная на этой дате с добавленными годами, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

plusMonths

public LocalDate plusMonths(long monthsToAdd)
Возвращает копию этой LocalDate с добавлением указанного количества месяцев.

Этот метод добавляет указанное количество к полю месяцев в три шага:

  1. Добавить введенные месяцы к полю месяца года
  2. Проверить, будет ли результирующая дата недопустимой
  3. Откорректировать день месяца до последнего допустимого дня, если необходимо

Например, 2007-03-31 плюс один месяц приведет к недопустимой дате 2007-04-31. Вместо возвращения недопустимого результата вместо этого выбирается последний допустимый день месяца, 2007-04-30.

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

Parameters:
monthsToAdd - добавляемые месяцы, могут быть отрицательными
Returns:
LocalDate, основанная на этой дате с добавленными месяцами, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

plusWeeks

public LocalDate plusWeeks(long weeksToAdd)
Возвращает копию этой LocalDate с добавлением указанного количества недель.

Этот метод добавляет указанное количество недель к полю days, увеличивая поля месяца и года по мере необходимости, чтобы результат оставался допустимым. Результат недопустим только в случае превышения максимального/минимального года.

Например, 2008-12-31 плюс одна неделя приведет к 2009-01-07.

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

Parameters:
weeksToAdd - добавляемые недели, могут быть отрицательными
Returns:
LocalDate, основанная на этой дате с добавленными неделями, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

plusDays

public LocalDate plusDays(long daysToAdd)
Возвращает копию этой LocalDate с добавлением указанного количества дней.

Этот метод добавляет указанное количество к полю days, увеличивая поля месяца и года по мере необходимости, чтобы результат оставался допустимым. Результат недопустим только в случае превышения максимального/минимального года.

Например, 2008-12-31 плюс один день приведет к 2009-01-01.

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

Parameters:
daysToAdd - добавляемые дни, могут быть отрицательными
Returns:
LocalDate, основанная на этой дате с добавленными днями, не null
Throws:
DateTimeException - если результат превышает поддерживаемый диапазон дат

minus

public LocalDate minus(TemporalAmount amountToSubtract)
Возвращает копию этой даты с вычитанием указанного количества.

Это возвращает LocalDate, основанную на этой, с вычитанием указанного количества. Количество обычно представляет собой Period, но может быть любого другого типа, реализующего интерфейс TemporalAmount.

Вычисление делегируется объекту количества путем вызова TemporalAmount.subtractFrom(Temporal). Реализация количества свободна реализовать вычитание любым способом, но обычно она вызывает minus(long, TemporalUnit). Обратитесь к документации реализации количества, чтобы определить, можно ли успешно вычесть его.

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

Specified by:
minus в интерфейсе ChronoLocalDate
Specified by:
minus в интерфейсе Temporal
Parameters:
amountToSubtract - количество для вычитания, не null
Returns:
LocalDate, основанная на этой дате с выполненным вычитанием, не null
Throws:
DateTimeException - если вычитание невозможно
ArithmeticException - если происходит переполнение числового значения

minus

public LocalDate minus(long amountToSubtract, TemporalUnit unit)
Возвращает копию этой даты с указанным значением, вычтенным.

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

Этот метод эквивалентен методу plus(long, TemporalUnit) с отрицательным значением величины. Смотрите этот метод для полного описания того, как работает сложение, а следовательно, и вычитание.

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

Specified by:
minus в интерфейсе ChronoLocalDate
Specified by:
minus в интерфейсе Temporal
Parameters:
amountToSubtract - величина единицы, которую нужно вычесть из результата, может быть отрицательной
unit - единица величины, которую нужно вычесть, не null
Returns:
LocalDate, основанная на этой дате с вычтенным указанным значением, не null
Throws:
DateTimeException - если вычитание невозможно
UnsupportedTemporalTypeException - если единица не поддерживается
ArithmeticException - если происходит переполнение числового типа

minusYears

public LocalDate minusYears(long yearsToSubtract)
Возвращает копию этой LocalDate с указанным количеством лет, вычтенных.

Этот метод вычитает указанную величину из поля "год" в трех шагах:

  1. Вычитает входные годы из поля "год"
  2. Проверяет, является ли полученная дата недопустимой
  3. Корректирует день месяца до последнего допустимого дня, если необходимо

Например, 2008-02-29 (високосный год) минус один год приведет к недопустимой дате 2007-02-29 (обычный год). Вместо возвращения недопустимого результата, вместо этого выбирается последний допустимый день месяца, 2007-02-28.

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

Parameters:
yearsToSubtract - годы для вычитания, могут быть отрицательными
Returns:
LocalDate, основанная на этой дате с вычтенными годами, не null
Throws:
DateTimeException - если результат выходит за поддерживаемый диапазон дат

minusMonths

public LocalDate minusMonths(long monthsToSubtract)
Возвращает копию этой LocalDate с указанным количеством месяцев, вычтенных.

Этот метод вычитает указанную величину из поля "месяц" в трех шагах:

  1. Вычитает входные месяцы из поля "месяц"
  2. Проверяет, является ли полученная дата недопустимой
  3. Корректирует день месяца до последнего допустимого дня, если необходимо

Например, 2007-03-31 минус один месяц приведет к недопустимой дате 2007-02-31. Вместо возвращения недопустимого результата, вместо этого выбирается последний допустимый день месяца, 2007-02-28.

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

Parameters:
monthsToSubtract - месяцы для вычитания, могут быть отрицательными
Returns:
LocalDate, основанная на этой дате с вычтенными месяцами, не null
Throws:
DateTimeException - если результат выходит за поддерживаемый диапазон дат

minusWeeks

public LocalDate minusWeeks(long weeksToSubtract)
Возвращает копию этой LocalDate с указанным количеством недель, вычтенных.

Этот метод вычитает указанную величину в неделях из поля "день", уменьшая поля "месяц" и "год" при необходимости, чтобы результат оставался допустимым. Результат является недопустимым только если предельное/минимальное значение года превышено.

Например, 2009-01-07 минус одна неделя приведет к 2008-12-31.

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

Parameters:
weeksToSubtract - недели для вычитания, могут быть отрицательными
Returns:
LocalDate, основанная на этой дате с вычтенными неделями, не null
Throws:
DateTimeException - если результат выходит за поддерживаемый диапазон дат

minusDays

public LocalDate minusDays(long daysToSubtract)
Возвращает копию этой LocalDate с указанным количеством дней, вычтенных.

Этот метод вычитает указанную величину из поля "день", уменьшая поля "месяц" и "год" при необходимости, чтобы результат оставался допустимым. Результат является недопустимым только если предельное/минимальное значение года превышено.

Например, 2009-01-01 минус один день приведет к 2008-12-31.

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

Parameters:
daysToSubtract - дни для вычитания, могут быть отрицательными
Returns:
LocalDate, основанная на этой дате с вычтенными днями, не null
Throws:
DateTimeException - если результат выходит за поддерживаемый диапазон дат

query

public <R> R query(TemporalQuery<R> query)
Запрашивает эту дату, используя указанный запрос.

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

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

Specified by:
query в интерфейсе ChronoLocalDate
Specified by:
query в интерфейсе TemporalAccessor
Type Parameters:
R - тип результата
Parameters:
query - запрос для вызова, не null
Returns:
результат запроса, может быть null (определяется запросом)
Throws:
DateTimeException - если запрос невозможен (определяется запросом)
ArithmeticException - если происходит переполнение числового типа (определяется запросом)

adjustInto

public Temporal adjustInto(Temporal temporal)
Корректирует указанный временной объект, чтобы у него была та же дата, что и у этого объекта.

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

Коррекция эквивалентна использованию Temporal.with(TemporalField, long), передавая ChronoField.EPOCH_DAY в качестве поля.

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

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

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

Specified by:
adjustInto в интерфейсе ChronoLocalDate
Specified by:
adjustInto в интерфейсе TemporalAdjuster
Parameters:
temporal - целевой объект для корректировки, не null
Returns:
скорректированный объект, не null
Throws:
DateTimeException - если корректировка невозможна
ArithmeticException - если происходит переполнение числового типа

until

public long until(Temporal endExclusive, TemporalUnit unit)
Вычисляет временной интервал до другой даты в терминах указанной единицы.

Это вычисляет временной интервал между двумя объектами LocalDate в терминах одной TemporalUnit. Начальная и конечная точки — это this и указанная дата. Результат будет отрицательным, если конечная точка предшествует начальной. Temporal, переданный в этот метод, преобразуется в LocalDate с помощью from(TemporalAccessor). Например, временной интервал в днях между двумя датами можно вычислить, используя startDate.until(endDate, DAYS).

Вычисление возвращает целое число, представляющее количество полных единиц между двумя датами. Например, временной интервал в месяцах между 2012-06-15 и 2012-08-14 составит только один месяц, так как он на один день меньше двух месяцев.

Существует два эквивалентных способа использования этого метода. Первый — вызвать этот метод. Второй — использовать TemporalUnit.between(Temporal, Temporal):

   // these two lines are equivalent
   amount = start.until(end, MONTHS);
   amount = MONTHS.between(start, end);
 
Выбор следует делать, основываясь на том, что делает код более читабельным.

Вычисление реализовано в этом методе для ChronoUnit. Поддерживаются единицы DAYS, WEEKS, MONTHS, YEARS, DECADES, CENTURIES, MILLENNIA и ERAS. Другие значения ChronoUnit вызовут исключение.

Если единица не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.between(Temporal, Temporal), передавая this в качестве первого аргумента и преобразованный входной временной объект в качестве второго аргумента.

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

Specified by:
until в интерфейсе ChronoLocalDate
Specified by:
until в интерфейсе Temporal
Parameters:
endExclusive - конечная дата, исключая, которая преобразуется в LocalDate, не null
unit - единица измерения величины, не null
Returns:
величина времени между этой датой и конечной датой
Throws:
DateTimeException - если величину нельзя вычислить или конечный временной объект нельзя преобразовать в LocalDate
UnsupportedTemporalTypeException - если единица не поддерживается
ArithmeticException - если происходит переполнение числового типа

until

public Period until(ChronoLocalDate endDateExclusive)
Вычисляет период между этой датой и другой датой как Period.

Это вычисляет период между двумя датами в терминах лет, месяцев и дней. Начальная и конечная точки - this и указанная дата. Результат будет отрицательным, если конец находится до начала. Знак минус будет одинаковым для каждого из года, месяца и дня.

Вычисление выполняется с использованием системы календаря ISO. При необходимости входная дата будет преобразована в ISO.

Начальная дата включается, а конечная - нет. Период вычисляется путем удаления полных месяцев, затем вычисления оставшегося количества дней, корректировки для обеспечения одинакового знака. Количество месяцев затем нормализуется в годы и месяцы на основе 12-месячного года. Месяц считается полным, если конечный день месяца больше или равен начальному дню месяца. Например, от 2010-01-15 до 2011-03-18 составляет "1 год, 2 месяца и 3 дня".

Существует два эквивалентных способа использования этого метода. Первый - вызвать этот метод. Второй - использовать Period.between(LocalDate, LocalDate):

   // these two lines are equivalent
   period = start.until(end);
   period = Period.between(start, end);
 
Выбор должен быть сделан на основе того, что делает код более читабельным.
Определено в:
until в интерфейсе ChronoLocalDate
Параметры:
endDateExclusive - конечная дата, исключая, которая может быть в любой хронологии, не null
Возвращает:
период между этой датой и конечной датой, не null

datesUntil

public Stream<LocalDate> datesUntil(LocalDate endExclusive)
Возвращает упорядоченный последовательный поток дат. Возвращаемый поток начинается с этой даты (включительно) и идет до endExclusive (исключая) с инкрементным шагом 1 день.

Этот метод эквивалентен datesUntil(endExclusive, Period.ofDays(1)).

Параметры:
endExclusive - конечная дата, исключая, не null
Возвращает:
последовательный Stream для диапазона значений LocalDate
Выбрасывает:
IllegalArgumentException - если конечная дата предшествует этой дате
С:
9

datesUntil

public Stream<LocalDate> datesUntil(LocalDate endExclusive, Period step)
Возвращает упорядоченный последовательный поток дат с заданным инкрементным шагом. Возвращаемый поток начинается с этой даты (включительно) и идет до endExclusive (исключая).

n-я дата, которая появляется в потоке, равна this.plus(step.multipliedBy(n)) (но результат умножения шага никогда не переполняет). Например, если эта дата - 2015-01-31, конечная дата - 2015-05-01, а шаг - 1 месяц, то поток содержит 2015-01-31, 2015-02-28, 2015-03-31 и 2015-04-30.

Параметры:
endExclusive - конечная дата, исключая, не null
step - ненулевой, неотрицательный Period, который представляет шаг.
Возвращает:
последовательный Stream для диапазона значений LocalDate
Выбрасывает:
IllegalArgumentException - если шаг равен нулю, или step.getDays() и step.toTotalMonths() имеют противоположные знаки, или конечная дата предшествует этой дате, а шаг положительный, или конечная дата следует за этой датой, а шаг отрицательный
С:
9

format

public String format(DateTimeFormatter formatter)
Форматирует эту дату с помощью указанного форматера.

Эта дата будет передана в форматер для создания строки.

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

atTime

public LocalDateTime atTime(LocalTime time)
Объединяет эту дату со временем для создания LocalDateTime.

Это возвращает LocalDateTime, образованный из этой даты в указанное время. Все возможные сочетания даты и времени допустимы.

Определено в:
atTime в интерфейсе ChronoLocalDate
Параметры:
time - время для объединения, не null
Возвращает:
локальное время-дата, образованное из этой даты и указанного времени, не null

atTime

public LocalDateTime atTime(int hour, int minute)
Объединяет эту дату со временем для создания LocalDateTime.

Это возвращает LocalDateTime, образованный из этой даты в указанный час и минуту. Поля секунд и наносекунд будут установлены в ноль. Отдельные поля времени должны находиться в допустимом диапазоне. Все возможные сочетания даты и времени допустимы.

Параметры:
hour - используемый час дня, от 0 до 23
minute - используемая минута часа, от 0 до 59
Возвращает:
локальное время-дата, образованное из этой даты и указанного времени, не null
Выбрасывает:
DateTimeException - если значение любого поля находится вне диапазона

atTime

public LocalDateTime atTime(int hour, int minute, int second)
Объединяет эту дату со временем для создания LocalDateTime.

Это возвращает LocalDateTime, образованный из этой даты в указанный час, минуту и секунду. Поле наносекунд будет установлено в ноль. Отдельные поля времени должны находиться в допустимом диапазоне. Все возможные сочетания даты и времени допустимы.

Параметры:
hour - используемый час дня, от 0 до 23
minute - используемая минута часа, от 0 до 59
second - представляемая секунда минуты, от 0 до 59
Возвращает:
локальное время-дата, образованное из этой даты и указанного времени, не null
Выбрасывает:
DateTimeException - если значение любого поля находится вне диапазона

atTime

public LocalDateTime atTime(int hour, int minute, int second, int nanoOfSecond)
Объединяет эту дату со временем для создания LocalDateTime.

Это возвращает LocalDateTime, образованный из этой даты в указанный час, минуту, секунду и наносекунду. Отдельные поля времени должны находиться в допустимом диапазоне. Все возможные сочетания даты и времени допустимы.

Параметры:
hour - используемый час дня, от 0 до 23
minute - используемая минута часа, от 0 до 59
second - представляемая секунда минуты, от 0 до 59
nanoOfSecond - представляемая наносекунда секунды, от 0 до 999 999 999
Возвращает:
локальное время-дата, образованное из этой даты и указанного времени, не null
Выбрасывает:
DateTimeException - если значение любого поля находится вне диапазона

atTime

public OffsetDateTime atTime(OffsetTime time)
Объединяет эту дату со смещением времени для создания OffsetDateTime.

Это возвращает OffsetDateTime, образованный из этой даты в указанное время. Все возможные сочетания даты и времени допустимы.

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

atStartOfDay

public LocalDateTime atStartOfDay()
Объединяет эту дату с временем полуночи, чтобы создать LocalDateTime в начале этой даты.

Это возвращает LocalDateTime, образованный из этой даты в момент полуночи, 00:00, в начале этой даты.

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

atStartOfDay

public ZonedDateTime atStartOfDay(ZoneId zone)
Возвращает дату-время зоны из этой даты в самое раннее допустимое время в соответствии с правилами часового пояса.

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

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

Если идентификатор зоны - ZoneOffset, то результат всегда имеет время полуночи.

Для преобразования в определенное время в заданном часовом поясе вызовите atTime(LocalTime), а затем LocalDateTime.atZone(ZoneId).

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

toEpochSecond

public long toEpochSecond(LocalTime time, ZoneOffset offset)
Преобразует эту LocalDate в количество секунд с эпохи 1970-01-01T00:00:00Z.

Это объединяет эту локальную дату со временем и смещением для вычисления значения эпохи-секунд, которое представляет количество прошедших секунд с 1970-01-01T00:00:00Z. Моменты на временной шкале после эпохи являются положительными, ранее - отрицательными.

Параметры:
time - локальное время, не null
offset - смещение зоны, не null
Возвращает:
количество секунд с эпохи 1970-01-01T00:00:00Z, может быть отрицательным
С:
9

compareTo

public int compareTo(ChronoLocalDate other)
Сравнивает эту дату с другой датой.

Сравнение в основном основано на дате, от самой ранней до самой поздней. Оно «согласуется с equals», как определено в Comparable.

Если все сравниваемые даты являются экземплярами LocalDate, то сравнение будет основано только на дате. Если некоторые сравниваемые даты находятся в разных хронологиях, то также учитывается хронология, см. ChronoLocalDate.compareTo(java.time.chrono.ChronoLocalDate).

Specified by:
compareTo в интерфейсе ChronoLocalDate
Specified by:
compareTo в интерфейсе Comparable<ChronoLocalDate>
Parameters:
other - другая дата для сравнения, не null
Returns:
значение компаратора, то есть сравнение этой локальной даты с other локальной датой и этой хронологией с other хронологией, по порядку, возвращая первое ненулевое значение, а в противном случае возвращая ноль
See Also:
  • isBefore(java.time.chrono.ChronoLocalDate)
  • isAfter(java.time.chrono.ChronoLocalDate)

isAfter

public boolean isAfter(ChronoLocalDate other)
Проверяет, следует ли эта дата после указанной даты.

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

   LocalDate a = LocalDate.of(2012, 6, 30);
   LocalDate b = LocalDate.of(2012, 7, 1);
   a.isAfter(b) == false
   a.isAfter(a) == false
   b.isAfter(a) == true
 

Этот метод учитывает только положение двух дат на локальной временной шкале. Он не учитывает хронологию или календарную систему. Это отличается от сравнения в compareTo(ChronoLocalDate), но соответствует подходу в ChronoLocalDate.timeLineOrder().

Specified by:
isAfter в интерфейсе ChronoLocalDate
Parameters:
other - другая дата для сравнения, не null
Returns:
true, если эта дата следует после указанной даты

isBefore

public boolean isBefore(ChronoLocalDate other)
Проверяет, предшествует ли эта дата указанной дате.

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

   LocalDate a = LocalDate.of(2012, 6, 30);
   LocalDate b = LocalDate.of(2012, 7, 1);
   a.isBefore(b) == true
   a.isBefore(a) == false
   b.isBefore(a) == false
 

Этот метод учитывает только положение двух дат на локальной временной шкале. Он не учитывает хронологию или календарную систему. Это отличается от сравнения в compareTo(ChronoLocalDate), но соответствует подходу в ChronoLocalDate.timeLineOrder().

Specified by:
isBefore в интерфейсе ChronoLocalDate
Parameters:
other - другая дата для сравнения, не null
Returns:
true, если эта дата предшествует указанной дате

isEqual

public boolean isEqual(ChronoLocalDate other)
Проверяет, равна ли эта дата указанной дате.

Проверяет, представляет ли эта дата ту же точку на локальной временной шкале, что и другая дата.

   LocalDate a = LocalDate.of(2012, 6, 30);
   LocalDate b = LocalDate.of(2012, 7, 1);
   a.isEqual(b) == false
   a.isEqual(a) == true
   b.isEqual(a) == false
 

Этот метод учитывает только положение двух дат на локальной временной шкале. Он не учитывает хронологию или календарную систему. Это отличается от сравнения в compareTo(ChronoLocalDate), но соответствует подходу в ChronoLocalDate.timeLineOrder().

Specified by:
isEqual в интерфейсе ChronoLocalDate
Parameters:
other - другая дата для сравнения, не null
Returns:
true, если эта дата равна указанной дате

equals

public boolean equals(Object obj)
Проверяет, равна ли эта дата другой дате.

Сравнивает эту LocalDate с другой, гарантируя, что дата совпадает.

Сравниваются только объекты типа LocalDate, другие типы возвращают false. Для сравнения дат двух TemporalAccessor экземпляров, включая даты в разных хронологиях, используйте ChronoField.EPOCH_DAY в качестве компаратора.

Specified by:
equals в интерфейсе ChronoLocalDate
Overrides:
equals в классе Object
Parameters:
obj - объект для проверки, null возвращает false
Returns:
true, если эта дата равна другой дате
See Also:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Хэш-код для этой даты.
Specified by:
hashCode в интерфейсе ChronoLocalDate
Overrides:
hashCode в классе Object
Returns:
подходящий хэш-код
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toString

public String toString()
Выводит эту дату как String, например, 2007-12-03.

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

Specified by:
toString в интерфейсе ChronoLocalDate
Overrides:
toString в классе Object
Returns:
строковое представление этой даты, не null

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/time/LocalDate.html

Spec-Zone.ru

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