Spec-Zone.ru › OpenJDK 17

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

Это класс с типом значений; программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, иначе может произойти непредсказуемое поведение. Например, в будущих версиях синхронизация может завершиться ошибкой. Для сравнений следует использовать метод 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 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)
Проверяет, поддерживается ли указанный интервал.

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

Определено в:
range в интерфейсе TemporalAccessor
Параметры:
field - поле для запроса диапазона, не null
Возвращает:
диапазон допустимых значений для поля, не null
Изворачивает:
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. Возможна ли получение значения, и что оно представляет, определяется полем.

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

getLong

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

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

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

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

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

getChronology

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

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

Определено в:
getChronology в интерфейсе ChronoLocalDate
Возвращает:
хронологию ISO, не null

getEra

public IsoEra getEra()
Получает эпоху, применимую к этой дате.

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

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

Определено в:
getEra в интерфейсе ChronoLocalDate
Возвращает:
применимую эпоху IsoEra, не null

getYear

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

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

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

Возвращает:
год, от MIN_YEAR до MAX_YEAR

getMonthValue

public int getMonthValue()
Получает поле месяц года от 1 до 12.

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

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

getMonth

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

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

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

getDayOfMonth

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

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

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

getDayOfYear

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

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

Возвращает:
день года, от 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 в качестве аргумента.

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

Specified by:
with в интерфейсе Temporal
Specified by:
with в интерфейсе ChronoLocalDate
Parameters:
adjuster — корректировщик для использования, не null
Returns:
скопированная дата с внесенными изменениями, не null
Throws:
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 в качестве аргумента. В этом случае поле определяет, нужно ли и как корректировать момент.

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

Specified by:
with в интерфейсе ChronoLocalDate
Specified by:
with в интерфейсе Temporal
Parameters:
field — поле для установки в результате, не null
newValue — новое значение поля в результате
Returns:
скопированная дата с заданным полем, не null
Throws:
DateTimeException — если поле не может быть установлено
UnsupportedTemporalTypeException — если поле не поддерживается
ArithmeticException — если происходит переполнение чисел

с годом

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

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

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

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

с месяцем

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

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

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

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

с днем месяца

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

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

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

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

с днем года

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

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

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

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

плюс

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

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

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

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

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

плюс

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

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

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

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

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

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

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

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

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

плюс лет

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

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

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

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

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

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

plusMonths

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

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

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

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

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

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

plusWeeks

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

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

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

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

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

plusDays

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

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

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

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

Parameters:
daysToAdd - количество добавляемых дней, может быть отрицательным
Returns:
a 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:
a 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:
a 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:
a 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:
a LocalDate на основе этой даты с вычтенными месяцами, не null
Throws:
DateTimeException - если результат выходит за поддерживаемый диапазон дат

minusWeeks

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

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

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

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

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

minusDays

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

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

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

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

Parameters:
daysToSubtract - количество дней для вычитания, может быть отрицательным
Returns:
a 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);
 
Выбор следует делать исходя из того, что делает код более читабельным.
Specified by:
until в интерфейсе ChronoLocalDate
Parameters:
endDateExclusive - конечная дата, исключая, которая может быть в любой хронологии, не null
Returns:
период между этой датой и конечной датой, не null

datesUntil

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

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

Parameters:
endExclusive - конечная дата, исключая, не null
Returns:
последовательный Stream для диапазона LocalDate значений
Throws:
IllegalArgumentException - если конечная дата предшествует этой дате
Since:
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.

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

format

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

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

Specified by:
format в интерфейсе ChronoLocalDate
Parameters:
formatter - используемый форматер, не null
Returns:
строка отформатированной даты, не null
Throws:
DateTimeException - если при печати произошла ошибка

atTime

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

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

Specified by:
atTime в интерфейсе ChronoLocalDate
Parameters:
time - время для объединения, не null
Returns:
локальное время-дата, образованное из этой даты и указанного времени, не null

atTime

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

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

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

atTime

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

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

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

atTime

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

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

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

atTime

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

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

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

atStartOfDay

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

Возвращает LocalDateTime, сформированную из этой даты в полночь, 00:00, в начале этой даты.

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

atStartOfDay

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

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

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

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

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

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

toEpochSecond

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

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

Parameters:
time - локальное время, не null
offset - смещение зоны, не null
Returns:
количество секунд с начала эпохи 1970-01-01T00:00:00Z, может быть отрицательным
Since:
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:
значение компаратора, отрицательное, если меньше, положительное, если больше

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, 2021, 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/17/docs/api/java.base/java/time/LocalDate.html

Spec-Zone.ru

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