Spec-Zone.ru › OpenJDK 8

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

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

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

Поля

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

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

static LocalDate MIN

Минимальная поддерживаемая дата, '-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)

Сравнивает эту дату с другой датой.

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

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

Era 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 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 toEpochDay()

Преобразует эту дату в Эпоху Дня.

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

timeLineOrder

Поля

MIN

public static final LocalDate MIN

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

MAX

public static final LocalDate MAX

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

Методы

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 - если значение любого поля находится вне диапазона или если день года недопустим для года

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.

Определено в:
from в интерфейсе ChronoLocalDate
Параметры:
temporal - временной объект для преобразования, не null
Возвращает:
локальную дату, не null
Выбрасывает:
DateTimeException - если невозможно преобразовать в LocalDate
См. также:
Chronology.date(TemporalAccessor)

parse

public static LocalDate parse(CharSequence text)

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

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

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

parse

public static LocalDate parse(CharSequence text,
                              DateTimeFormatter formatter)

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

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

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

isSupported

public boolean isSupported(TemporalField field)

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

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

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

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

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

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

isSupported

public boolean isSupported(TemporalUnit unit)

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

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

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

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

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

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

range

public ValueRange range(TemporalField field)

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

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

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

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

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

get

public int get(TemporalField field)

Получает значение указанного поля из этой даты в виде int.

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

Если поле является ChronoField, то запрос выполняется здесь. supported fields вернёт допустимые значения на основе этой даты, за исключением EPOCH_DAY и PROLEPTIC_MONTH, которые слишком велики для int и вызовут DateTimeException. Все остальные 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 Era getEra()

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

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

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

Возвращаемая эпоха будет синглтоном, способным быть сравниваемой с константами в IsoChronology с использованием оператора ==.

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

getYear

public int getYear()

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

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

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

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

getMonthValue

public int getMonthValue()

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

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

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

getMonth

public Month getMonth()

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

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

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

getDayOfMonth

public int getDayOfMonth()

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

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

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

getDayOfYear

public int getDayOfYear()

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

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

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

getDayOfWeek

public DayOfWeek getDayOfWeek()

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

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

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

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

isLeapYear

public boolean isLeapYear()

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

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

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

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

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

lengthOfMonth

public int lengthOfMonth()

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

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

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

lengthOfYear

public int lengthOfYear()

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

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

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

with

public LocalDate with(TemporalAdjuster adjuster)

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

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

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

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

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

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

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

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

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

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

with

public LocalDate with(TemporalField field,
                      long newValue)

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

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

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

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

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

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

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

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

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

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

withYear

public LocalDate withYear(int year)

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

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

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

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

withMonth

public LocalDate withMonth(int month)

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

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

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

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

withDayOfMonth

public LocalDate withDayOfMonth(int dayOfMonth)

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

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

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

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

withDayOfYear

public LocalDate withDayOfYear(int dayOfYear)

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

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

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

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

plus

public LocalDate plus(TemporalAmount amountToAdd)

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

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

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

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

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

plus

public LocalDate plus(long amountToAdd,
                      TemporalUnit unit)

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

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

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

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

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

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

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

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

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

plusYears

public LocalDate plusYears(long yearsToAdd)

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

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

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

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

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

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

plusMonths

public LocalDate plusMonths(long monthsToAdd)

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

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

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

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

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

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

plusWeeks

public LocalDate plusWeeks(long weeksToAdd)

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

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

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

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

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

plusDays

public LocalDate plusDays(long daysToAdd)

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

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

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

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

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

minus

public LocalDate minus(TemporalAmount amountToSubtract)

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

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

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

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

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

minus

public LocalDate minus(long amountToSubtract,
                       TemporalUnit unit)

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

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

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

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

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

minusYears

public LocalDate minusYears(long yearsToSubtract)

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

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

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

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

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

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

minusMonths

public LocalDate minusMonths(long monthsToSubtract)

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

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

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

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

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

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

minusWeeks

public LocalDate minusWeeks(long weeksToSubtract)

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

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

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

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

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

minusDays

public LocalDate minusDays(long daysToSubtract)

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

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

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

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

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

query

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

Запрашивает эту дату, используя указанный запрос.

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

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

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

adjustInto

public Temporal adjustInto(Temporal temporal)

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

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

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

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

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

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

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

until

public long until(Temporal endExclusive,
                  TemporalUnit unit)

Вычисляет количество времени до другой даты в терминах указанной единицы измерения.

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

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

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

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

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

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

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

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

until

public Period until(ChronoLocalDate endDateExclusive)

Вычисляет период между этой датой и другой датой как Period.

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

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

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

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

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

format

public String format(DateTimeFormatter formatter)

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

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

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

atTime

public LocalDateTime atTime(LocalTime time)

Объединяет эту дату со временем для создания LocalDateTime.

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

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

atTime

public LocalDateTime atTime(int hour,
                            int minute)

Объединяет эту дату со временем для создания LocalDateTime.

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

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

atTime

public LocalDateTime atTime(int hour,
                            int minute,
                            int second)

Объединяет эту дату со временем для создания LocalDateTime.

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

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

atTime

public LocalDateTime atTime(int hour,
                            int minute,
                            int second,
                            int nanoOfSecond)

Объединяет эту дату со временем для создания LocalDateTime.

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

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

atTime

public OffsetDateTime atTime(OffsetTime time)

Объединяет эту дату с смещенным временем для создания OffsetDateTime.

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

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

atStartOfDay

public LocalDateTime atStartOfDay()

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

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

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

atStartOfDay

public ZonedDateTime atStartOfDay(ZoneId zone)

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

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

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

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

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

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

toEpochDay

public long toEpochDay()

Описание скопировано из интерфейса: ChronoLocalDate

Преобразует эту дату в эпохальный день.

Epoch Day count — это простой увеличивающийся счет дней, где день 0 — это 1970-01-01 (ISO). Это определение одинаково для всех хронологий, что позволяет осуществлять преобразование.

Эта реализация по умолчанию запрашивает поле EPOCH_DAY.

Указано в:
toEpochDay в интерфейсе ChronoLocalDate
Возвращает:
эпохальный день, эквивалентный этой дате

compareTo

public int compareTo(ChronoLocalDate other)

Сравнивает эту дату с другой датой.

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

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

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

isAfter

public boolean isAfter(ChronoLocalDate other)

Проверяет, находится ли эта дата после указанной даты.

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

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

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

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

isBefore

public boolean isBefore(ChronoLocalDate other)

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

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

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

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

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

isEqual

public boolean isEqual(ChronoLocalDate other)

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

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

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

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

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

equals

public boolean equals(Object obj)

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

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

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

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

hashCode

public int hashCode()

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

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

toString

public String toString()

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

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

Установлено:
toString в интерфейсе ChronoLocalDate
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этой даты, не null

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

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