Spec-Zone.ru › OpenJDK 21

Класс 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'.

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

Modifier and Type Method Description
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'.
Since:
9

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

now

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

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

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

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

now

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

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

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

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

now

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

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

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

of

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

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

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

of

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

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

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

ofYearDay

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

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

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

ofInstant

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

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

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

ofEpochDay

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

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

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

from

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

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

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

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

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

parse

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

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

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

parse

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

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

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

isSupported

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

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

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

range

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

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

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

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

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

get

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

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

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

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

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

getLong

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

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

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

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

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

getChronology

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

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

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

getEra

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

Официально стандарт ISO-8601 не определяет эры, но IsoChronology это делает. Он определяет две эры: «CE» с года 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 в качестве аргумента.

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

Specified by:
with в интерфейсе ChronoLocalDate
Specified by:
with в интерфейсе Temporal
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
Возвращает:
LocalDate на основе этой даты с запрошенным годом, не null
Исключения:
DateTimeException - если значение года недопустимо

сМесяцем

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

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

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

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

сДнёмМесяца

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

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

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

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

сДнёмГода

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

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

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

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

плюс

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

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

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

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

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

плюс

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

плюсЛет

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.

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

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

plusWeeks

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

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

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

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

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

plusDays

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

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

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

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

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

minusWeeks

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

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

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

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

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

minusDays

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

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

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

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

Parameters:
daysToSubtract - количество дней для вычитания, может быть отрицательным
Returns:
дата, основанная на этой дате с вычтенными днями, не 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 in interface ChronoLocalDate
Specified by:
adjustInto in interface 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 in interface ChronoLocalDate
Specified by:
until in interface 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 in interface 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 in interface ChronoLocalDate
Parameters:
formatter - используемый форматер, не null
Returns:
строка отформатированной даты, не null
Throws:
DateTimeException - если при печати произошла ошибка

atTime

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

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

Specified by:
atTime in interface 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.

Это объединяет эту локальную дату со временем и смещением для вычисления значения эпохи в секундах, которое представляет собой количество прошедших секунд с 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:
значение сравнения, представляющее собой сравнение этой локальной даты с other локальной датой и этой хронологией с other хронологией; возвращает первое ненулевое значение, а в противном случае возвращает ноль
See Also:
  • isBefore(java.time.chrono.ChronoLocalDate)
  • isAfter(java.time.chrono.ChronoLocalDate)

isAfter

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

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

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

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

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

isBefore

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

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

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

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

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

isEqual

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

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

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

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

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

equals

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

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

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

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

hashCode

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

toString

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

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

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

© 1993, 2023, 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/21/docs/api/java.base/java/time/LocalDate.html

Spec-Zone.ru

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