Класс 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 непригоден.

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

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

Поля

Модификатор и тип Поле Описание
static LocalDate EPOCH

Эпохальный год LocalDate, '1970-01-01'.

static LocalDate MAX

Максимальная поддерживаемая дата LocalDate, '+999999999-12-31'.

static 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 withDayOfMonth​(int dayOfMonth)

Возвращает копию этого 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

Минимальное поддерживаемое LocalDate, '-999999999-01-01'. Это можно использовать в приложении как дату «далёкого прошлого».

MAX

public static final LocalDate MAX

Максимальное поддерживаемое LocalDate, '+999999999-12-31'. Это можно использовать в приложении как дату «далёкого будущего».

EPOCH

public static final LocalDate EPOCH

Эпоха года LocalDate, '1970-01-01'.

Методы

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
См. также:
Chronology.date(TemporalAccessor)

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)

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

Это проверяет, можно ли запрашивать у этой даты указанное поле. Если значение false, то вызов методов 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 в качестве аргумента. Поддерживается ли поле, определяется полем.

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

isSupported

public boolean isSupported(TemporalUnit unit)

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

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

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

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

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

Указано в:
isSupported в интерфейсе ChronoLocalDate
Указано в:
isSupported в интерфейсе Temporal
Параметры:
unit - единица для проверки, null возвращает false
Возвращает:
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' с года 1 и далее, и 'BCE' с года 0 и назад. Поскольку даты до перехода с юлианского на григорианский календарь не соответствуют истории, переход между '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().

Returns:
месяц, от 1 до 12
See Also:
getMonth()

getMonth

public Month getMonth()

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

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

Returns:
месяц, не null
See Also:
getMonthValue()

getDayOfMonth

public int getDayOfMonth()

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

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

Returns:
день месяца, от 1 до 31

getDayOfYear

public int getDayOfYear()

Получает поле дня года.

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

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

getDayOfWeek

public DayOfWeek getDayOfWeek()

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

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

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

Returns:
день недели, не null

isLeapYear

public boolean isLeapYear()

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

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

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

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

Specified by:
isLeapYear в интерфейсе ChronoLocalDate
Returns:
true, если год високосный, false в противном случае

lengthOfMonth

public int lengthOfMonth()

Возвращает длину месяца, представленного этой датой.

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

Specified by:
lengthOfMonth в интерфейсе ChronoLocalDate
Returns:
длину месяца в днях

lengthOfYear

public int lengthOfYear()

Возвращает длину года, представленного этой датой.

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

Specified by:
lengthOfYear в интерфейсе ChronoLocalDate
Returns:
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
Возвращает:
скопированную LocalDate на основе this со сделанной корректировкой, не null
Исключения:
DateTimeException - если корректировка не может быть выполнена
ArithmeticException - если происходит переполнение числовых типов

with

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 - если происходит переполнение числовых типов

withYear

public LocalDate withYear(int year)

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

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

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

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

withMonth

public LocalDate withMonth(int month)

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

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

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

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

withDayOfMonth

public LocalDate withDayOfMonth(int dayOfMonth)

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

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

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

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

withDayOfYear

public LocalDate withDayOfYear(int dayOfYear)

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

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

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

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

plus

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 в качестве аргумента. В этом случае единица определяет, нужно ли и как выполнить добавление.

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

Определено в:
plus в интерфейсе ChronoLocalDate
Определено в:
plus в интерфейсе Temporal
Параметры:
amountToAdd - количество единицы для добавления к результату, может быть отрицательным
unit - единица количества для добавления, не null
Возвращает:
дата LocalDate на основе этой даты с указанным количеством добавлено, не null
Исключения:
DateTimeException - если добавление невозможно
UnsupportedTemporalTypeException - если единица не поддерживается
ArithmeticException - если произошел переполнение чисел

plusYears

public LocalDate plusYears(long yearsToAdd)

Возвращает копию этого LocalDate с указанным количеством добавленных лет.

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

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

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

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

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

plusMonths

public LocalDate plusMonths(long monthsToAdd)

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

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

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

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

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

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

plusWeeks

public LocalDate plusWeeks(long weeksToAdd)

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

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

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

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

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

plusDays

public LocalDate plusDays(long daysToAdd)

Возвращает копию этого LocalDate с указанным количеством добавленных дней.

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

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

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

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

minus

public LocalDate minus(TemporalAmount amountToSubtract)

Возвращает копию этой даты с указанным вычтенным количеством.

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

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

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

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

minus

public LocalDate minus(long amountToSubtract,
                       TemporalUnit unit)

Возвращает копию этой даты с вычтенным указанным значением.

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

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

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

Указано в:
minus в интерфейсе ChronoLocalDate
Указано в:
minus в интерфейсе Temporal
Параметры:
amountToSubtract - значение для вычитания из результата, может быть отрицательным
unit - единицы значения для вычитания, не null
Возвращает:
объект LocalDate на основе этой даты с вычтенным значением, не null
Исключения:
DateTimeException - если вычитание невозможно
UnsupportedTemporalTypeException - если единицы не поддерживаются
ArithmeticException - если происходит переполнение

minusYears

public LocalDate minusYears(long yearsToSubtract)

Возвращает копию этого объекта LocalDate с вычтенным указанным количеством лет.

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

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

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

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

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

minusMonths

public LocalDate minusMonths(long monthsToSubtract)

Возвращает копию этого объекта LocalDate с вычтенным указанным количеством месяцев.

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

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

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

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

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

minusWeeks

public LocalDate minusWeeks(long weeksToSubtract)

Возвращает копию этого объекта LocalDate с вычтенным указанным количеством недель.

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

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

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

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

minusDays

public LocalDate minusDays(long daysToSubtract)

Возвращает копию этого объекта LocalDate с вычтенным указанным количеством дней.

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

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

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

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

query

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

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

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

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

Указано в:
query в интерфейсе ChronoLocalDate
Указано в:
query в интерфейсе TemporalAccessor
Параметры типа:
R - тип результата
Параметры:
query - запрос для вызова, не null
Возвращает:
результат запроса, может быть возвращено null (определено запросом)
Исключения:
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);

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

Указано в:
adjustInto в интерфейсе ChronoLocalDate
Указано в:
adjustInto в интерфейсе TemporalAdjuster
Параметры:
temporal - целевой объект для корректировки, не null
Возвращает:
скорректированный объект, не null
Исключения:
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 в качестве первого аргумента и преобразованный входной временной объект в качестве второго аргумента.

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

Указано в:
until в интерфейсе ChronoLocalDate
Указано в:
until в интерфейсе Temporal
Параметры:
endExclusive - конечная дата, не включительно, которая преобразуется в LocalDate, не null
unit - единица измерения количества, не null
Возвращает:
количество времени между этой датой и конечной датой
Исключения:
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).

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

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().

Определено:
isAfter в интерфейсе ChronoLocalDate
Параметры:
other - другая дата для сравнения, не null
Возвращает:
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().

Определено:
isBefore в интерфейсе ChronoLocalDate
Параметры:
other - другая дата для сравнения, не null
Возвращает:
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().

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

equals

public boolean equals(Object obj)

Проверяет, равна ли эта дата другой дате.

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

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

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

hashCode

public int hashCode()

Хеш-код для этой даты.

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

toString

public String toString()

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

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

Определено:
toString в интерфейсе ChronoLocalDate
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этой даты, не 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/LocalDate.html

Spec-Zone .ru
спецификации, руководства, описания, API