Класс 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 | EPOCH | Эпохальный год |
static LocalDate | MAX | Максимальная поддерживаемая дата |
static LocalDate | MIN | Минимальная поддерживаемая дата |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Temporal | adjustInto(Temporal temporal) | Настраивает указанный временной объект так, чтобы его дата совпадала с датой этого объекта. |
LocalDateTime | atStartOfDay() | Объединяет эту дату со временем полуночи, чтобы создать |
ZonedDateTime | atStartOfDay(ZoneId zone) | Возвращает дату и время с часовым поясом из этой даты в самое раннее допустимое время в соответствии с правилами часового пояса. |
LocalDateTime | atTime(int hour,
int minute) | Объединяет эту дату со временем, чтобы создать |
LocalDateTime | atTime(int hour,
int minute,
int second) | Объединяет эту дату со временем, чтобы создать |
LocalDateTime | atTime(int hour,
int minute,
int second,
int nanoOfSecond) | Объединяет эту дату со временем, чтобы создать |
LocalDateTime | atTime(LocalTime time) | Объединяет эту дату со временем, чтобы создать |
OffsetDateTime | atTime(OffsetTime time) | Объединяет эту дату со временем с часовым смещением, чтобы создать |
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) | Получает экземпляр |
int | get(TemporalField field) | Возвращает значение указанного поля из этой даты как |
IsoChronology | getChronology() | Получает хронологию этой даты, которая представляет собой систему календаря ISO. |
int | getDayOfMonth() | Получает поле дня месяца. |
DayOfWeek | getDayOfWeek() | Получает поле дня недели, которое является перечислением |
int | getDayOfYear() | Получает поле дня года. |
IsoEra | getEra() | Получает эпоху, применимую к этой дате. |
long | getLong(TemporalField field) | Возвращает значение указанного поля из этой даты как |
Month | getMonth() | Получает поле месяца года, используя перечисление |
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 | minusMonths(long monthsToSubtract) | Возвращает копию этого |
LocalDate | minusWeeks(long weeksToSubtract) | Возвращает копию этого |
LocalDate | minusYears(long yearsToSubtract) | Возвращает копию этого |
static LocalDate | now() | Получает текущую дату с системных часов в стандартном часовом поясе. |
static LocalDate | now(Clock clock) | Получает текущую дату из указанных часов. |
static LocalDate | now(ZoneId zone) | Получает текущую дату с системных часов в указанном часовом поясе. |
static LocalDate | of(int year,
int month,
int dayOfMonth) | Получает экземпляр |
static LocalDate | of(int year,
Month month,
int dayOfMonth) | Получает экземпляр |
static LocalDate | ofEpochDay(long epochDay) | Получает экземпляр |
static LocalDate | ofInstant(Instant instant,
ZoneId zone) | Получает экземпляр |
static LocalDate | ofYearDay(int year,
int dayOfYear) | Получает экземпляр |
static LocalDate | parse(CharSequence text) | Получает экземпляр |
static LocalDate | parse(CharSequence text,
DateTimeFormatter formatter) | Получает экземпляр |
LocalDate | plus(long amountToAdd,
TemporalUnit unit) | Возвращает копию этой даты с добавлением указанного значения. |
LocalDate | plus(TemporalAmount amountToAdd) | Возвращает копию этой даты с добавлением указанного значения. |
LocalDate | plusDays(long daysToAdd) | Возвращает копию этого |
LocalDate | plusMonths(long monthsToAdd) | Возвращает копию этого |
LocalDate | plusWeeks(long weeksToAdd) | Возвращает копию этого |
LocalDate | plusYears(long yearsToAdd) | Возвращает копию этого |
<R> R | query(TemporalQuery<R> query) | Обрабатывает эту дату с использованием заданного запроса. |
ValueRange | range(TemporalField field) | Возвращает диапазон допустимых значений для указанного поля. |
long | toEpochSecond(LocalTime time,
ZoneOffset offset) | Преобразует этот |
String | toString() | Выводит эту дату как |
Period | until(ChronoLocalDate endDateExclusive) | Вычисляет период между этой датой и другой датой как |
long | until(Temporal endExclusive,
TemporalUnit unit) | Вычисляет продолжительность времени до другой даты в терминах указанной единицы. |
LocalDate | with(TemporalAdjuster adjuster) | Возвращает скорректированную копию этой даты. |
LocalDate | with(TemporalField field,
long newValue) | Возвращает копию этой даты с указанным полем, установленным на новое значение. |
|---|---|---|
LocalDate | withDayOfMonth(int dayOfMonth) | Возвращает копию этого |
LocalDate | withDayOfYear(int dayOfYear) | Возвращает копию этого |
LocalDate | withMonth(int month) | Возвращает копию этого |
LocalDate | withYear(int year) | Возвращает копию этого |
Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Методы, объявленные в интерфейсе java.time.chrono.ChronoLocalDate
toEpochDay Поля
MIN
public static final LocalDate MIN
Минимальное поддерживаемое LocalDate, '-999999999-01-01'. Это можно использовать в приложении как дату «далёкого прошлого».
MAX
public static final LocalDate MAX
Максимальное поддерживаемое LocalDate, '+999999999-12-31'. Это можно использовать в приложении как дату «далёкого будущего».
EPOCH
public static final LocalDate EPOCH
Эпоха года LocalDate, '1970-01-01'.
Методы
now
public static LocalDate now()
Получает текущую дату из системных часов в часовом поясе по умолчанию.
Это будет запрос к system clock в часовом поясе по умолчанию для получения текущей даты.
Использование этого метода предотвратит возможность использования альтернативных часов для тестирования, поскольку часы являются жестко закодированными.
- Возвращает:
- текущую дату с использованием системных часов и часового пояса по умолчанию, не null
now
public static LocalDate now(ZoneId zone)
Получает текущую дату из системных часов в указанном часовом поясе.
Это будет запрос к system clock для получения текущей даты. Указание часового пояса позволяет избежать зависимости от часового пояса по умолчанию.
Использование этого метода предотвратит возможность использования альтернативных часов для тестирования, поскольку часы являются жестко закодированными.
- Параметры:
-
zone- идентификатор зоны, который необходимо использовать, не null - Возвращает:
- текущую дату с использованием системных часов, не null
now
public static LocalDate now(Clock clock)
Получает текущую дату из указанных часов.
Это будет запрос к указанным часам для получения текущей даты — сегодня. Использование этого метода позволяет использовать альтернативные часы для тестирования. Альтернативные часы могут быть введены с помощью dependency injection.
- Параметры:
-
clock- часы, которые необходимо использовать, не null - Возвращает:
- текущая дата, не null
of
public static LocalDate of(int year,
Month month,
int dayOfMonth) Получает экземпляр LocalDate из года, месяца и дня.
Это возвращает LocalDate с указанным годом, месяцем и днем месяца. День должен быть допустимым для года и месяца, иначе будет выброшено исключение.
- Параметры:
-
year- год, который необходимо представить, от MIN_YEAR до MAX_YEAR -
month- месяц года, который необходимо представить, не null -
dayOfMonth- день месяца, который необходимо представить, от 1 до 31 - Возвращает:
- локальная дата, не null
- Вызывает:
-
DateTimeException- если значение любого поля выходит за пределы диапазона или если день месяца неверен для года и месяца
of
public static LocalDate of(int year,
int month,
int dayOfMonth) Получает экземпляр LocalDate из года, месяца и дня.
Это возвращает LocalDate с указанным годом, месяцем и днем месяца. День должен быть допустимым для года и месяца, иначе будет выброшено исключение.
- Параметры:
-
year- год, который необходимо представить, от MIN_YEAR до MAX_YEAR -
month- месяц года, который необходимо представить, от 1 (январь) до 12 (декабрь) -
dayOfMonth- день месяца, который необходимо представить, от 1 до 31 - Возвращает:
- локальная дата, не null
- Вызывает:
-
DateTimeException- если значение любого поля выходит за пределы диапазона или если день месяца неверен для года и месяца
ofYearDay
public static LocalDate ofYearDay(int year,
int dayOfYear) Получает экземпляр LocalDate из года и дня года.
Это возвращает LocalDate с указанным годом и днем года. День года должен быть допустимым для года, иначе будет выброшено исключение.
- Параметры:
-
year- год, который необходимо представить, от MIN_YEAR до MAX_YEAR -
dayOfYear- день года, который необходимо представить, от 1 до 366 - Возвращает:
- локальная дата, не null
- Вызывает:
-
DateTimeException- если значение любого поля выходит за пределы диапазона или если день года неверен для года
ofInstant
public static LocalDate ofInstant(Instant instant,
ZoneId zone) Получает экземпляр LocalDate из Instant и идентификатора зоны.
Это создает локальную дату на основе указанного момента времени. Сначала с помощью идентификатора зоны и момента времени получается смещение от UTC/Гринвича, что является простым, поскольку для каждого момента времени существует только одно допустимое смещение. Затем момент времени и смещение используются для вычисления локальной даты.
- Параметры:
-
instant- момент времени, из которого нужно создать дату, не null -
zone- часовой пояс, который может быть смещением, не null - Возвращает:
- локальная дата, не null
- Вызывает:
-
DateTimeException- если результат превышает поддерживаемый диапазон - С версии:
- 9
ofEpochDay
public static LocalDate ofEpochDay(long epochDay)
Получает экземпляр LocalDate из количества дней эпохи.
Это возвращает LocalDate с указанным днем эпохи. EPOCH_DAY — это простой инкрементный подсчет дней, где день 0 — это 1970-01-01. Отрицательные числа представляют более ранние дни.
- Параметры:
-
epochDay- день эпохи для преобразования, на основе эпохи 1970-01-01 - Возвращает:
- локальная дата, не null
- Вызывает:
-
DateTimeException- если день эпохи превышает поддерживаемый диапазон дат
from
public static LocalDate from(TemporalAccessor temporal)
Получает экземпляр LocalDate из временного объекта.
Это получает локальную дату на основе указанного временного объекта. TemporalAccessor представляет собой произвольный набор информации о дате и времени, который этот фабричный метод преобразует в экземпляр LocalDate.
Преобразование использует запрос TemporalQueries.localDate(), который основан на извлечении поля EPOCH_DAY.
Этот метод соответствует сигнатуре функционального интерфейса TemporalQuery, что позволяет использовать его в качестве запроса через ссылку на метод, LocalDate::from.
- Параметры:
-
temporal- временной объект для преобразования, не null - Возвращает:
- локальная дата, не null
- Вызывает:
-
DateTimeException- если невозможно преобразовать вLocalDate - См. также:
Chronology.date(TemporalAccessor)
parse
public static LocalDate parse(CharSequence text)
Получает экземпляр LocalDate из текстовой строки, такой как 2007-12-03.
Строка должна представлять допустимую дату и анализируется с помощью DateTimeFormatter.ISO_LOCAL_DATE.
- Параметры:
-
text- текст для анализа, например "2007-12-03", не null - Возвращает:
- проанализированная локальная дата, не null
- Вызывает:
-
DateTimeParseException- если текст не может быть проанализирован
parse
public static LocalDate parse(CharSequence text,
DateTimeFormatter formatter) Получает экземпляр LocalDate из текстовой строки с использованием определенного форматера.
Текст анализируется с помощью форматера, возвращая дату.
- Параметры:
-
text- текст для анализа, не null -
formatter- форматер для использования, не null - Возвращает:
- проанализированная локальная дата, не null
- Вызывает:
-
DateTimeParseException- если текст не может быть проанализирован
isSupported
public boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.
Это проверяет, можно ли запрашивать у этой даты указанное поле. Если значение false, то вызов методов range, get и with(TemporalField, long) вызовет исключение.
Если поле является ChronoField, то запрос реализуется здесь. Поддерживаемые поля:
-
DAY_OF_WEEK -
ALIGNED_DAY_OF_WEEK_IN_MONTH -
ALIGNED_DAY_OF_WEEK_IN_YEAR -
DAY_OF_MONTH -
DAY_OF_YEAR -
EPOCH_DAY -
ALIGNED_WEEK_OF_MONTH -
ALIGNED_WEEK_OF_YEAR -
MONTH_OF_YEAR -
PROLEPTIC_MONTH -
YEAR_OF_ERA -
YEAR -
ERA
ChronoField вернут false. Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.isSupportedBy(TemporalAccessor) с передачей this в качестве аргумента. Поддерживается ли поле, определяется полем.
- Указано в:
-
isSupportedв интерфейсеChronoLocalDate - Указано в:
-
isSupportedв интерфейсеTemporalAccessor - Параметры:
-
field- поле для проверки, null возвращает false - Возвращает:
- true, если поле поддерживается в этой дате, false — в противном случае
isSupported
public boolean isSupported(TemporalUnit unit)
Проверяет, поддерживается ли указанная единица.
Это проверяет, можно ли добавить или вычесть указанную единицу из этой даты. Если значение false, то вызов методов plus(long, TemporalUnit) и minus вызовет исключение.
Если единица является ChronoUnit, то запрос реализуется здесь. Поддерживаемые единицы:
-
DAYS -
WEEKS -
MONTHS -
YEARS -
DECADES -
CENTURIES -
MILLENNIA -
ERAS
ChronoUnit вернут false. Если единица не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.isSupportedBy(Temporal) с передачей this в качестве аргумента. Поддерживается ли единица, определяется единицей.
- Указано в:
-
isSupportedв интерфейсеChronoLocalDate - Указано в:
-
isSupportedв интерфейсеTemporal - Параметры:
-
unit- единица для проверки, null возвращает false - Возвращает:
- true, если единицу можно добавить/вычесть, false — в противном случае
range
public ValueRange range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.
Объект диапазона выражает минимальное и максимальное допустимые значения для поля. Эта дата используется для повышения точности возвращаемого диапазона. Если невозможно вернуть диапазон, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то запрос реализуется здесь. supported fields вернет соответствующие экземпляры диапазона. Все остальные ChronoField экземпляры будут выбрасывать UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.rangeRefinedBy(TemporalAccessor), передав this в качестве аргумента. Возможность получения диапазона определяется полем.
- Specified by:
-
rangeв интерфейсеTemporalAccessor - Parameters:
-
field- поле, для которого запрашивается диапазон, не null - Returns:
- диапазон допустимых значений для поля, не null
- Throws:
-
DateTimeException- если диапазон для поля получить нельзя -
UnsupportedTemporalTypeException- если поле не поддерживается
get
public int get(TemporalField field)
Получает значение указанного поля из этой даты в виде int.
Это запрос к этой дате для получения значения указанного поля. Возвращаемое значение всегда будет находиться в допустимом диапазоне значений для поля. Если невозможно вернуть значение, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то запрос реализуется здесь. supported fields вернет допустимые значения, основанные на этой дате, за исключением EPOCH_DAY и PROLEPTIC_MONTH, которые слишком велики для int и выбрасывают UnsupportedTemporalTypeException. Все остальные ChronoField экземпляры будут выбрасывать UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.getFrom(TemporalAccessor), передав this в качестве аргумента. Возможность получения значения и то, что оно представляет, определяется полем.
- Specified by:
-
getв интерфейсеTemporalAccessor - Parameters:
-
field- поле для получения, не null - Returns:
- значение поля
- Throws:
-
DateTimeException- если значение для поля получить нельзя или значение находится за пределами диапазона допустимых значений для поля -
UnsupportedTemporalTypeException- если поле не поддерживается или диапазон значений превышаетint -
ArithmeticException- если происходит переполнение числового типа
getLong
public long getLong(TemporalField field)
Получает значение указанного поля из этой даты в виде long.
Это запрос к этой дате для получения значения указанного поля. Если невозможно вернуть значение, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
Если поле является ChronoField, то запрос реализуется здесь. supported fields вернет допустимые значения, основанные на этой дате. Все остальные ChronoField экземпляры будут выбрасывать UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.getFrom(TemporalAccessor), передав this в качестве аргумента. Возможность получения значения и то, что оно представляет, определяется полем.
- Specified by:
-
getLongв интерфейсеTemporalAccessor - Parameters:
-
field- поле для получения, не null - Returns:
- значение поля
- Throws:
-
DateTimeException- если значение для поля получить нельзя -
UnsupportedTemporalTypeException- если поле не поддерживается -
ArithmeticException- если происходит переполнение числового типа
getChronology
public IsoChronology getChronology()
Получает хронологию этой даты, которая представляет собой систему календаря ISO.
Chronology представляет систему календаря, используемую в данный момент. Система календаря ISO-8601 является современной системой гражданского календаря, используемой сегодня в большинстве стран мира. Она эквивалентна пролептической системе григорианского календаря, в которой сегодняшние правила високосных лет применяются на все времена.
- Specified by:
-
getChronologyв интерфейсеChronoLocalDate - Returns:
- хронологию ISO, не null
getEra
public IsoEra getEra()
Получает эру, применимую к этой дате.
Официальный стандарт ISO-8601 не определяет эры, однако IsoChronology это делает. Он определяет две эры: 'CE' с года 1 и далее, и 'BCE' с года 0 и назад. Поскольку даты до перехода с юлианского на григорианский календарь не соответствуют истории, переход между 'BCE' и 'CE' также не соответствует обычно используемым эрам, часто обозначаемым 'BC' и 'AD'.
Пользователи этого класса, как правило, должны игнорировать этот метод, так как он существует в основном для выполнения контракта ChronoLocalDate, где необходимо поддерживать японскую систему календаря.
- Specified by:
-
getEraв интерфейсеChronoLocalDate - Returns:
- применимую IsoEra в эту дату, не null
getYear
public int getYear()
Получает поле года.
Этот метод возвращает примитивное значение int для года.
Год, возвращаемый этим методом, является пролептическим в соответствии с get(YEAR). Для получения года эры используйте get(YEAR_OF_ERA).
- Returns:
- год, от MIN_YEAR до MAX_YEAR
getMonthValue
public int getMonthValue()
Получает поле месяца от 1 до 12.
Этот метод возвращает месяц как int от 1 до 12. Код приложения часто яснее, если используется перечисление Month вызвав getMonth().
- Returns:
- месяц, от 1 до 12
- See Also:
getMonth()
getMonth
public Month getMonth()
Получает поле месяца с использованием перечисления Month.
Этот метод возвращает перечисление Month для месяца. Это предотвращает путаницу, что означают значения int. Если вам нужен доступ к примитивному значению int, то перечисление предоставляет int value.
- Returns:
- месяц, не null
- See Also:
getMonthValue()
getDayOfMonth
public int getDayOfMonth()
Получает поле дня месяца.
Этот метод возвращает примитивное значение int для дня месяца.
- Returns:
- день месяца, от 1 до 31
getDayOfYear
public int getDayOfYear()
Получает поле дня года.
Этот метод возвращает примитивное значение int для дня года.
- Returns:
- день года, от 1 до 365, или 366 в високосном году
getDayOfWeek
public DayOfWeek getDayOfWeek()
Получает поле дня недели, которое является перечислением DayOfWeek.
Этот метод возвращает перечисление DayOfWeek для дня недели. Это предотвращает путаницу, что означают значения int. Если вам нужен доступ к примитивному значению int, то перечисление предоставляет int value.
Дополнительная информация может быть получена из DayOfWeek. Это включает текстовые имена значений.
- Returns:
- день недели, не null
isLeapYear
public boolean isLeapYear()
Проверяет, является ли год високосным, в соответствии с правилами ISO пролептического календаря.
Этот метод применяет текущие правила високосных лет на протяжении всей временной линии. В общем случае, год является високосным, если он делится на четыре без остатка. Однако годы, делящиеся на 100, не являются високосными, за исключением годов, делящихся на 400, которые являются.
Например, 1904 год является високосным, так как делится на 4. 1900 год не был високосным, поскольку делится на 100, но 2000 год был високосным, так как делится на 400.
Вычисление является пролептическим - применяется те же правила во всем будущем и прошлом. Исторически это неточно, но это правильно для стандарта ISO-8601.
- Specified by:
-
isLeapYearв интерфейсеChronoLocalDate - Returns:
- true, если год високосный, false в противном случае
lengthOfMonth
public int lengthOfMonth()
Возвращает длину месяца, представленного этой датой.
Это возвращает длину месяца в днях. Например, дата в январе вернет 31.
- Specified by:
-
lengthOfMonthв интерфейсеChronoLocalDate - Returns:
- длину месяца в днях
lengthOfYear
public int lengthOfYear()
Возвращает длину года, представленного этой датой.
Это возвращает длину года в днях, либо 365, либо 366.
- Specified by:
-
lengthOfYearв интерфейсеChronoLocalDate - Returns:
- 366, если год високосный, 365 в противном случае
with
public LocalDate with(TemporalAdjuster adjuster)
Возвращает скорректированную копию этой даты.
Этот метод возвращает LocalDate, основанную на этой дате, со скорректированной датой. Коррекция выполняется с использованием указанного объекта стратегии корректировки. Обратитесь к документации корректировщика, чтобы понять, какая коррекция будет применена.
Простой корректировщик может просто установить одно из полей, например, год. Более сложный корректировщик может установить дату на последнее число месяца.
Набор общих корректировок представлен в TemporalAdjusters. Они включают нахождение «последнего дня месяца» и «следующей среды». Ключевые классы для работы с датами и временем также реализуют интерфейс TemporalAdjuster, такие как Month и MonthDay. Корректировщик отвечает за обработку особых случаев, таких как переменная длина месяцев и високосные годы.
Например, этот код возвращает дату последнего дня июля:
import static java.time.Month.*; import static java.time.temporal.TemporalAdjusters.*; result = localDate.with(JULY).with(lastDayOfMonth());
Результат этого метода получается путем вызова метода TemporalAdjuster.adjustInto(Temporal) на указанном корректировщике, передав this в качестве аргумента.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Определено в:
-
withв интерфейсеChronoLocalDate - Определено в:
-
withв интерфейсеTemporal - Параметры:
-
adjuster- корректировщик для использования, не null - Возвращает:
- скопированную
LocalDateна основеthisсо сделанной корректировкой, не null - Исключения:
-
DateTimeException- если корректировка не может быть выполнена -
ArithmeticException- если происходит переполнение числовых типов
with
public LocalDate with(TemporalField field,
long newValue) Возвращает копию этой даты с заданным полем, установленным в новое значение.
Этот метод возвращает LocalDate, основанную на этой дате, со значением указанного поля, изменённым. Это можно использовать для изменения любого поддерживаемого поля, такого как год, месяц или день месяца. Если установить значение невозможно, потому что поле не поддерживается или по какой-либо другой причине, выбрасывается исключение.
В некоторых случаях изменение указанного поля может привести к тому, что результирующая дата станет недействительной, например, изменение месяца с 31 января на февраль сделает день месяца недействительным. В таких случаях поле отвечает за разрешение даты. Обычно оно выберет предыдущую действительную дату, которая в этом примере будет последним допустимым днём февраля.
Если поле является ChronoField, то коррекция реализуется здесь. Поддерживаемые поля ведут себя следующим образом:
-
DAY_OF_WEEK- ВозвращаетLocalDateсо значением указанного дня недели. Дата корректируется вперёд или назад до 6 дней в рамках границ недели с понедельника по воскресенье. -
ALIGNED_DAY_OF_WEEK_IN_MONTH- ВозвращаетLocalDateсо значением указанного дня недели, выровненного по месяцу. Дата корректируется до указанного дня недели, выровненного по месяцу. Выровненные недели считаются так, что первая неделя данного месяца начинается с первого числа этого месяца. Это может привести к перемещению даты до 6 дней в следующий месяц. -
ALIGNED_DAY_OF_WEEK_IN_YEAR- ВозвращаетLocalDateсо значением указанного дня недели, выровненного по году. Дата корректируется до указанного дня недели, выровненного по году. Выровненные недели считаются так, что первая неделя данного года начинается с первого числа этого года. Это может привести к перемещению даты до 6 дней в следующий год. -
DAY_OF_MONTH- ВозвращаетLocalDateсо значением указанного дня месяца. Месяц и год останутся неизменными. Если день месяца недействителен для года и месяца, выбрасываетсяDateTimeException. -
DAY_OF_YEAR- ВозвращаетLocalDateсо значением указанного дня года. Год останется неизменным. Если день года недействителен для года, выбрасываетсяDateTimeException. -
EPOCH_DAY- ВозвращаетLocalDateсо значением указанного эпохального дня. Это полностью заменяет дату и эквивалентноofEpochDay(long). -
ALIGNED_WEEK_OF_MONTH- ВозвращаетLocalDateсо значением указанной выровненной недели месяца. Выровненные недели считаются так, что первая неделя данного месяца начинается с первого числа этого месяца. Эта коррекция перемещает дату целыми неделями, чтобы соответствовать указанной неделе. Результат будет иметь тот же день недели, что и эта дата. Это может привести к перемещению даты в следующий месяц. -
ALIGNED_WEEK_OF_YEAR- ВозвращаетLocalDateсо значением указанной выровненной недели года. Выровненные недели считаются так, что первая неделя данного года начинается с первого числа этого года. Эта коррекция перемещает дату целыми неделями, чтобы соответствовать указанной неделе. Результат будет иметь тот же день недели, что и эта дата. Это может привести к перемещению даты в следующий год. -
MONTH_OF_YEAR- ВозвращаетLocalDateсо значением указанного месяца года. Год останется неизменным. День месяца также останется неизменным, если он не будет недействителен для нового месяца и года. В этом случае день месяца корректируется до максимального допустимого значения для нового месяца и года. -
PROLEPTIC_MONTH- ВозвращаетLocalDateсо значением указанного пролептического месяца. День месяца останется неизменным, если он не будет недействителен для нового месяца и года. В этом случае день месяца корректируется до максимального допустимого значения для нового месяца и года. -
YEAR_OF_ERA- ВозвращаетLocalDateсо значением указанного года эры. Эра и месяц останутся неизменными. День месяца также останется неизменным, если он не будет недействителен для нового месяца и года. В этом случае день месяца корректируется до максимального допустимого значения для нового месяца и года. -
YEAR- ВозвращаетLocalDateсо значением указанного года. Месяц останется неизменным. День месяца также останется неизменным, если он не будет недействителен для нового месяца и года. В этом случае день месяца корректируется до максимального допустимого значения для нового месяца и года. -
ERA- ВозвращаетLocalDateсо значением указанной эры. Год эры и месяц останутся неизменными. День месяца также останется неизменным, если он не будет недействителен для нового месяца и года. В этом случае день месяца корректируется до максимального допустимого значения для нового месяца и года.
Во всех случаях, если новое значение выходит за пределы допустимого диапазона значений для поля, будет выброшено DateTimeException.
Все остальные экземпляры ChronoField выбросят UnsupportedTemporalTypeException.
Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.adjustInto(Temporal, long), передав this в качестве аргумента. В этом случае поле определяет, как и следует ли корректировать момент времени.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Определено в:
-
withв интерфейсеChronoLocalDate - Определено в:
-
withв интерфейсеTemporal - Параметры:
-
field- поле для установки в результате, не null -
newValue- новое значение поля в результате - Возвращает:
- скопированную
LocalDateна основеthisсо заданным полем, не null - Исключения:
-
DateTimeException- если поле не может быть установлено -
UnsupportedTemporalTypeException- если поле не поддерживается -
ArithmeticException- если происходит переполнение числовых типов
withYear
public LocalDate withYear(int year)
Возвращает копию этой даты с изменённым годом.
Если день месяца недействителен для года, он будет изменён на последний действительный день месяца.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Параметры:
-
year- год для установки в результате, от MIN_YEAR до MAX_YEAR - Возвращает:
- скопированная дата на основе этой даты с запрошенным годом, не null
- Исключения:
-
DateTimeException- если значение года недействительно
withMonth
public LocalDate withMonth(int month)
Возвращает копию этой даты с изменённым месяцем.
Если день месяца недействителен для года, он будет изменён на последний действительный день месяца.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Параметры:
-
month- месяц для установки в результате, от 1 (январь) до 12 (декабрь) - Возвращает:
- скопированная дата на основе этой даты с запрошенным месяцем, не null
- Исключения:
-
DateTimeException- если значение месяца недействительно
withDayOfMonth
public LocalDate withDayOfMonth(int dayOfMonth)
Возвращает копию этой даты с изменённым днём месяца.
Если результирующая дата недействительна, выбрасывается исключение.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Параметры:
-
dayOfMonth- день месяца для установки в результате, от 1 до 28-31 - Возвращает:
- скопированная дата на основе этой даты с запрошенным днём, не null
- Исключения:
-
DateTimeException- если значение дня месяца недействительно или если день месяца недействителен для месяца-года
withDayOfYear
public LocalDate withDayOfYear(int dayOfYear)
Возвращает копию этой даты с изменённым днём года.
Если результирующая дата недействительна, выбрасывается исключение.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Параметры:
-
dayOfYear- день года для установки в результате, от 1 до 365-366 - Возвращает:
- скопированная дата на основе этой даты с запрошенным днём, не null
- Исключения:
-
DateTimeException- если значение дня года недействительно или если день года недействителен для года
plus
public LocalDate plus(TemporalAmount amountToAdd)
Возвращает копию этой даты с указанным добавленным количеством.
Это возвращает LocalDate, основанную на этой, с указанным добавленным количеством. Количество обычно является Period, но может быть любого другого типа, реализующего интерфейс TemporalAmount.
Вычисление делегируется объекту количества вызовом TemporalAmount.addTo(Temporal). Реализация количества свободна реализовать добавление любым способом, однако обычно она обращается к plus(long, TemporalUnit). Обратитесь к документации реализации количества, чтобы определить, может ли оно быть успешно добавлено.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Определено в:
-
plusв интерфейсеChronoLocalDate - Определено в:
-
plusв интерфейсеTemporal - Параметры:
-
amountToAdd- количество для добавления, не null - Возвращает:
- дата
LocalDateна основе этой даты с произведённым добавлением, не null - Исключения:
-
DateTimeException- если добавление невозможно -
ArithmeticException- если произошел переполнение чисел
plus
public LocalDate plus(long amountToAdd,
TemporalUnit unit) Возвращает копию этой даты с указанным добавленным количеством.
Это возвращает LocalDate, основанную на этой, с количеством в терминах добавленной единицы. Если добавить количество невозможно, потому что единица не поддерживается или по какой-либо другой причине, выбрасывается исключение.
В некоторых случаях добавление количества может привести к тому, что результирующая дата станет недействительной. Например, добавление одного месяца к 31 января приведет к 31 февраля. В таких случаях единица отвечает за разрешение даты. Обычно она выберет предыдущую действительную дату, которая в этом примере будет последним действительным днём февраля.
Если поле является ChronoUnit, то добавление реализуется здесь. Поддерживаемые поля ведут себя следующим образом:
-
DAYS- ВозвращаетLocalDateс указанным количеством добавленных дней. ЭквивалентноplusDays(long). -
WEEKS- ВозвращаетLocalDateс указанным количеством добавленных недель. ЭквивалентноplusWeeks(long)и использует неделю в 7 дней. -
MONTHS- ВозвращаетLocalDateс указанным количеством добавленных месяцев. ЭквивалентноplusMonths(long). День месяца останется неизменным, если он не будет недействительным для нового месяца и года. В этом случае день месяца корректируется до максимального действительного значения для нового месяца и года. -
YEARS- ВозвращаетLocalDateс указанным количеством добавленных лет. ЭквивалентноplusYears(long). День месяца останется неизменным, если он не будет недействительным для нового месяца и года. В этом случае день месяца корректируется до максимального действительного значения для нового месяца и года. -
DECADES- ВозвращаетLocalDateс указанным количеством добавленных десятилетий. Эквивалентно вызовуplusYears(long)с количеством, умноженным на 10. День месяца останется неизменным, если он не будет недействительным для нового месяца и года. В этом случае день месяца корректируется до максимального действительного значения для нового месяца и года. -
CENTURIES- ВозвращаетLocalDateс указанным количеством добавленных столетий. Эквивалентно вызовуplusYears(long)с количеством, умноженным на 100. День месяца останется неизменным, если он не будет недействительным для нового месяца и года. В этом случае день месяца корректируется до максимального действительного значения для нового месяца и года. -
MILLENNIA- ВозвращаетLocalDateс указанным количеством добавленных тысячелетий. Эквивалентно вызовуplusYears(long)с количеством, умноженным на 1000. День месяца останется неизменным, если он не будет недействительным для нового месяца и года. В этом случае день месяца корректируется до максимального действительного значения для нового месяца и года. -
ERAS- ВозвращаетLocalDateс указанным количеством добавленных эр. Поддерживаются только две эры, поэтому количество должно быть равно одному, нулю или минус одному. Если количество отлично от нуля, то год меняется таким образом, что год эры остается неизменным. День месяца останется неизменным, если он не будет недействительным для нового месяца и года. В этом случае день месяца корректируется до максимального действительного значения для нового месяца и года.
Все остальные экземпляры ChronoUnit будут выбрасывать UnsupportedTemporalTypeException.
Если поле не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.addTo(Temporal, long) с передачей this в качестве аргумента. В этом случае единица определяет, нужно ли и как выполнить добавление.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Определено в:
-
plusв интерфейсеChronoLocalDate - Определено в:
-
plusв интерфейсеTemporal - Параметры:
-
amountToAdd- количество единицы для добавления к результату, может быть отрицательным -
unit- единица количества для добавления, не null - Возвращает:
- дата
LocalDateна основе этой даты с указанным количеством добавлено, не null - Исключения:
-
DateTimeException- если добавление невозможно -
UnsupportedTemporalTypeException- если единица не поддерживается -
ArithmeticException- если произошел переполнение чисел
plusYears
public LocalDate plusYears(long yearsToAdd)
Возвращает копию этого LocalDate с указанным количеством добавленных лет.
Этот метод добавляет указанное количество к полю года в три шага:
- Добавить введённые годы к полю года
- Проверить, была бы результирующая дата недействительной
- Корректировать день месяца до последнего действительного дня, если необходимо
Например, 2008-02-29 (високосный год) плюс один год приведут к недействительной дате 2009-02-29 (обычный год). Вместо возврата недействительного результата, вместо этого выбирается последний действительный день месяца 2009-02-28.
Этот экземпляр неизменяемый и не затрагивается этим вызовом метода.
- Параметры:
-
yearsToAdd- годы для добавления, могут быть отрицательными - Возвращает:
- дата
LocalDateна основе этой даты с добавленными годами, не null - Исключения:
-
DateTimeException- если результат выходит за поддерживаемый диапазон дат
plusMonths
public LocalDate plusMonths(long monthsToAdd)
Возвращает копию этого LocalDate с указанным количеством добавленных месяцев.
Этот метод добавляет указанное количество к полю месяцев в три шага:
- Добавить введённые месяца к полю месяца
- Проверить, была бы результирующая дата недействительной
- Корректировать день месяца до последнего действительного дня, если необходимо
Например, 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 с вычтенным указанным количеством лет.
Этот метод вычитает указанное количество из поля лет в три шага:
- Вычесть входные года из поля года
- Проверить, будет ли результирующая дата недействительной
- При необходимости скорректировать день месяца до последнего допустимого дня
Например, 2008-02-29 (високосный год) минус один год приведет к недействительной дате 2007-02-29 (стандартный год). Вместо возврата неверного результата выбирается последний допустимый день месяца, 2007-02-28.
Этот экземпляр неизменяем и не затрагивается вызовом этого метода.
- Параметры:
-
yearsToSubtract- количество лет для вычитания, может быть отрицательным - Возвращает:
- объект
LocalDateна основе этой даты с вычтенными годами, не null - Исключения:
-
DateTimeException- если результат выходит за пределы поддерживаемого диапазона дат
minusMonths
public LocalDate minusMonths(long monthsToSubtract)
Возвращает копию этого объекта LocalDate с вычтенным указанным количеством месяцев.
Этот метод вычитает указанное количество из поля месяцев в три шага:
- Вычесть входные месяцы из поля месяца года
- Проверить, будет ли результирующая дата недействительной
- При необходимости скорректировать день месяца до последнего допустимого дня
Например, 2007-03-31 минус один месяц приведет к недействительной дате 2007-02-31. Вместо возврата неверного результата выбирается последний допустимый день месяца, 2007-02-28.
Этот экземпляр неизменяем и не затрагивается вызовом этого метода.
- Параметры:
-
monthsToSubtract- количество месяцев для вычитания, может быть отрицательным - Возвращает:
- объект
LocalDateна основе этой даты с вычтенными месяцами, не null - Исключения:
-
DateTimeException- если результат выходит за пределы поддерживаемого диапазона дат
minusWeeks
public LocalDate minusWeeks(long weeksToSubtract)
Возвращает копию этого объекта LocalDate с вычтенным указанным количеством недель.
Этот метод вычитает указанное количество недель из поля дней, уменьшая поля месяца и года по мере необходимости, чтобы гарантировать, что результат останется допустимым. Результат недействителен только в том случае, если превышен максимальный/минимальный год.
Например, 2009-01-07 минус одна неделя даст 2008-12-31.
Этот экземпляр неизменяем и не затрагивается вызовом этого метода.
- Параметры:
-
weeksToSubtract- количество недель для вычитания, может быть отрицательным - Возвращает:
- объект
LocalDateна основе этой даты с вычтенными неделями, не null - Исключения:
-
DateTimeException- если результат выходит за пределы поддерживаемого диапазона дат
minusDays
public LocalDate minusDays(long daysToSubtract)
Возвращает копию этого объекта LocalDate с вычтенным указанным количеством дней.
Этот метод вычитает указанное количество из поля дней, уменьшая поля месяца и года по мере необходимости, чтобы гарантировать, что результат останется допустимым. Результат недействителен только в том случае, если превышен максимальный/минимальный год.
Например, 2009-01-01 минус один день даст 2008-12-31.
Этот экземпляр неизменяем и не затрагивается вызовом этого метода.
- Параметры:
-
daysToSubtract- количество дней для вычитания, может быть отрицательным - Возвращает:
- объект
LocalDateна основе этой даты с вычтенными днями, не null - Исключения:
-
DateTimeException- если результат выходит за пределы поддерживаемого диапазона дат
query
public <R> R query(TemporalQuery<R> query)
Запрос к этой дате с использованием указанного запроса.
Этот запрос к этой дате с использованием указанного объекта стратегии запроса. Объект TemporalQuery определяет логику, которая будет использоваться для получения результата. Прочитайте документацию запроса, чтобы понять, каким будет результат этого метода.
Результат этого метода получается путем вызова метода TemporalQuery.queryFrom(TemporalAccessor) для указанного запроса, передавая this в качестве аргумента.
- Указано в:
-
queryв интерфейсеChronoLocalDate - Указано в:
-
queryв интерфейсеTemporalAccessor - Параметры типа:
-
R- тип результата - Параметры:
-
query- запрос для вызова, не null - Возвращает:
- результат запроса, может быть возвращено null (определено запросом)
- Исключения:
-
DateTimeException- если запрос невозможен (определено запросом) -
ArithmeticException- если происходит переполнение (определено запросом)
adjustInto
public Temporal adjustInto(Temporal temporal)
Корректирует указанный временной объект, чтобы он имел ту же дату, что и этот объект.
Возвращает временной объект того же наблюдаемого типа, что и входной, с датой, измененной так, чтобы она совпадала с этой.
Корректировка эквивалентна использованию Temporal.with(TemporalField, long), передавая ChronoField.EPOCH_DAY в качестве поля.
В большинстве случаев яснее изменить порядок вызова, используя Temporal.with(TemporalAdjuster):
// these two lines are equivalent, but the second approach is recommended temporal = thisLocalDate.adjustInto(temporal); temporal = temporal.with(thisLocalDate);
Этот экземпляр неизменяем и не затрагивается вызовом этого метода.
- Указано в:
-
adjustIntoв интерфейсеChronoLocalDate - Указано в:
-
adjustIntoв интерфейсеTemporalAdjuster - Параметры:
-
temporal- целевой объект для корректировки, не null - Возвращает:
- скорректированный объект, не null
- Исключения:
-
DateTimeException- если корректировку выполнить невозможно -
ArithmeticException- если происходит переполнение
until
public long until(Temporal endExclusive,
TemporalUnit unit) Вычисляет количество времени до другой даты в терминах указанной единицы.
Вычисляет количество времени между двумя объектами LocalDate в терминах одной TemporalUnit. Начальной и конечной точками являются this и указанная дата. Результат будет отрицательным, если конец находится до начала. Temporal, переданный этому методу, преобразуется в LocalDate с помощью from(TemporalAccessor). Например, количество дней между двумя датами можно вычислить с помощью startDate.until(endDate, DAYS).
Вычисление возвращает целое число, представляющее количество полных единиц между двумя датами. Например, количество месяцев между 2012-06-15 и 2012-08-14 будет только один месяц, так как это на один день меньше двух месяцев.
Существует два эквивалентных способа использования этого метода. Первый - вызов этого метода. Второй - использование TemporalUnit.between(Temporal, Temporal):
// these two lines are equivalent amount = start.until(end, MONTHS); amount = MONTHS.between(start, end);Выбор должен быть сделан на основе того, какой из них делает код более читаемым.
Вычисление реализовано в этом методе для ChronoUnit. Поддерживаются единицы DAYS, WEEKS, MONTHS, YEARS, DECADES, CENTURIES, MILLENNIA и ERAS. Другие значения ChronoUnit вызовут исключение.
Если единица не является ChronoUnit, то результат этого метода получается путем вызова TemporalUnit.between(Temporal, Temporal), передавая this в качестве первого аргумента и преобразованный входной временной объект в качестве второго аргумента.
Этот экземпляр неизменяем и не затрагивается вызовом этого метода.
- Указано в:
-
untilв интерфейсеChronoLocalDate - Указано в:
-
untilв интерфейсеTemporal - Параметры:
-
endExclusive- конечная дата, не включительно, которая преобразуется вLocalDate, не null -
unit- единица измерения количества, не null - Возвращает:
- количество времени между этой датой и конечной датой
- Исключения:
-
DateTimeException- если количество не может быть вычислено или конечный временной объект не может быть преобразован вLocalDate -
UnsupportedTemporalTypeException- если единица не поддерживается -
ArithmeticException- если происходит переполнение
until
public Period until(ChronoLocalDate endDateExclusive)
Вычисляет период между этой датой и другой датой как Period.
Это вычисляет период между двумя датами в годах, месяцах и днях. Начальная и конечная точки — this и указанная дата. Результат будет отрицательным, если конец раньше начала. Отрицательный знак будет одинаковым для года, месяца и дня.
Расчет выполняется с использованием системы календаря ISO. При необходимости входная дата будет преобразована в ISO.
Начальная дата включена, а конечная — нет. Период вычисляется путем удаления полных месяцев, а затем вычисления оставшегося количества дней, с корректировкой для обеспечения того, чтобы оба имели один и тот же знак. Затем количество месяцев нормализуется в годы и месяцы на основе года из 12 месяцев. Месяц считается полным, если конечный день месяца больше или равен начальному дню месяца. Например, с 2010-01-15 по 2011-03-18 — это «1 год, 2 месяца и 3 дня».
Существует два эквивалентных способа использования этого метода. Первый — вызов этого метода. Второй — использование Period.between(LocalDate, LocalDate):
// these two lines are equivalent period = start.until(end); period = Period.between(start, end);Выбор следует делать на основе того, что делает код более читаемым.
- Указано в:
-
untilв интерфейсеChronoLocalDate - Параметры:
-
endDateExclusive- конечная дата, не включительно, которая может быть в любой хронологии, не null - Возвращает:
- период между этой датой и конечной датой, не null
datesUntil
public Stream<LocalDate> datesUntil(LocalDate endExclusive)
Возвращает упорядоченный последовательный поток дат. Возвращаемый поток начинается с этой даты (включительно) и идет до endExclusive (не включительно) с шагом в 1 день.
Этот метод эквивалентен datesUntil(endExclusive, Period.ofDays(1)).
- Параметры:
-
endExclusive- конечная дата, не включительно, не null - Возвращает:
- последовательный
Streamдля диапазона значенийLocalDate - Исключения:
-
IllegalArgumentException- если конечная дата раньше этой даты - С версии:
- 9
datesUntil
public Stream<LocalDate> datesUntil(LocalDate endExclusive,
Period step) Возвращает упорядоченный последовательный поток дат с заданным шагом наращивания. Возвращаемый поток начинается с этой даты (включительно) и идет до endExclusive (не включительно).
N-я дата, которая появляется в потоке, равна this.plus(step.multipliedBy(n)) (но результат умножения шага никогда не переполняется). Например, если эта дата 2015-01-31, конечная дата 2015-05-01 и шаг — 1 месяц, то поток содержит 2015-01-31, 2015-02-28, 2015-03-31 и 2015-04-30.
- Параметры:
-
endExclusive- конечная дата, не включительно, не null -
step- ненулевой, неотрицательныйPeriod, который представляет шаг. - Возвращает:
- последовательный
Streamдля диапазона значенийLocalDate - Исключения:
-
IllegalArgumentException- если шаг равен нулю, илиstep.getDays()иstep.toTotalMonths()имеют противоположный знак, или конечная дата раньше этой даты, а шаг положителен, или конечная дата позже этой даты, а шаг отрицателен - С версии:
- 9
format
public String format(DateTimeFormatter formatter)
Форматирует эту дату с использованием указанного форматера.
Эта дата будет передана форматеру для создания строки.
- Указано в:
-
formatв интерфейсеChronoLocalDate - Параметры:
-
formatter- форматер для использования, не null - Возвращает:
- форматированная строка даты, не null
- Исключения:
-
DateTimeException- если во время печати произошла ошибка
atTime
public LocalDateTime atTime(LocalTime time)
Объединяет эту дату со временем для создания LocalDateTime.
Это возвращает LocalDateTime, сформированный из этой даты в указанное время. Все возможные комбинации даты и времени допустимы.
- Указано в:
-
atTimeв интерфейсеChronoLocalDate - Параметры:
-
time- время для объединения, не null - Возвращает:
- локальное время и дата, сформированные из этой даты и указанного времени, не null
atTime
public LocalDateTime atTime(int hour,
int minute) Объединяет эту дату со временем для создания LocalDateTime.
Это возвращает LocalDateTime, сформированный из этой даты в указанный час и минуту. Поля секунд и наносекунд будут установлены в ноль. Отдельные поля времени должны находиться в допустимом диапазоне. Все возможные комбинации даты и времени допустимы.
- Параметры:
-
hour- час суток для использования, от 0 до 23 -
minute- минута часа для использования, от 0 до 59 - Возвращает:
- локальное время и дата, сформированные из этой даты и указанного времени, не null
- Исключения:
-
DateTimeException- если значение любого поля выходит за пределы диапазона
atTime
public LocalDateTime atTime(int hour,
int minute,
int second) Объединяет эту дату со временем для создания LocalDateTime.
Это возвращает LocalDateTime, сформированный из этой даты в указанный час, минуту и секунду. Поле наносекунд будет установлено в ноль. Отдельные поля времени должны находиться в допустимом диапазоне. Все возможные комбинации даты и времени допустимы.
- Параметры:
-
hour- час суток для использования, от 0 до 23 -
minute- минута часа для использования, от 0 до 59 -
second- секунда минуты для представления, от 0 до 59 - Возвращает:
- локальное время и дата, сформированные из этой даты и указанного времени, не null
- Исключения:
-
DateTimeException- если значение любого поля выходит за пределы диапазона
atTime
public LocalDateTime atTime(int hour,
int minute,
int second,
int nanoOfSecond) Объединяет эту дату со временем для создания LocalDateTime.
Это возвращает LocalDateTime, сформированный из этой даты в указанный час, минуту, секунду и наносекунду. Отдельные поля времени должны находиться в допустимом диапазоне. Все возможные комбинации даты и времени допустимы.
- Параметры:
-
hour- час суток для использования, от 0 до 23 -
minute- минута часа для использования, от 0 до 59 -
second- секунда минуты для представления, от 0 до 59 -
nanoOfSecond- наносекунда для представления, от 0 до 999 999 999 - Возвращает:
- локальное время и дата, сформированные из этой даты и указанного времени, не null
- Исключения:
-
DateTimeException- если значение любого поля выходит за пределы диапазона
atTime
public OffsetDateTime atTime(OffsetTime time)
Объединяет эту дату со смещенным временем для создания OffsetDateTime.
Это возвращает OffsetDateTime, сформированный из этой даты в указанное время. Все возможные комбинации даты и времени допустимы.
- Параметры:
-
time- время для объединения, не null - Возвращает:
- смещенное время и дата, сформированные из этой даты и указанного времени, не null
atStartOfDay
public LocalDateTime atStartOfDay()
Объединяет эту дату с временем полуночи для создания LocalDateTime в начале этой даты.
Это возвращает LocalDateTime, сформированный из этой даты в полночь, 00:00, в начале этой даты.
- Возвращает:
- локальное время и дата полуночи в начале этой даты, не null
atStartOfDay
public ZonedDateTime atStartOfDay(ZoneId zone)
Возвращает смещенное время и дату из этой даты в самое раннее допустимое время в соответствии с правилами часового пояса.
Правила часового пояса, такие как летнее время, означают, что не каждое локальное время и дата допустимы для указанной зоны, поэтому локальное время и дата могут не быть полночь.
В большинстве случаев существует только один допустимый смещение для локального времени и даты. В случае перекрытия существуют два допустимых смещения, и используется более раннее, соответствующее первому появлению полуночи в указанную дату. В случае пробела смещенное время и дата будут представлять момент времени сразу после пробела.
Если идентификатор зоны — ZoneOffset, то результат всегда имеет время полуночи.
Для преобразования в конкретное время в данном часовом поясе вызовите atTime(LocalTime), а затем LocalDateTime.atZone(ZoneId).
- Параметры:
-
zone- идентификатор зоны для использования, не null - Возвращает:
- смещенное время и дата, сформированные из этой даты и самого раннего допустимого времени для зоны, не null
toEpochSecond
public long toEpochSecond(LocalTime time,
ZoneOffset offset) Преобразует это LocalDate в количество секунд с эпохи 1970-01-01T00:00:00Z.
Это объединяет эту локальную дату с указанным временем и смещением для вычисления значения эпохи-секунды, которое представляет собой количество прошедших секунд с 1970-01-01T00:00:00Z. Моменты на временной шкале после эпохи положительны, более ранние — отрицательны.
- Параметры:
-
time- локальное время, не null -
offset- смещение зоны, не null - Возвращает:
- количество секунд с эпохи 1970-01-01T00:00:00Z, может быть отрицательным
- С версии:
- 9
compareTo
public int compareTo(ChronoLocalDate other)
Сравнивает эту дату с другой датой.
Сравнение в основном основано на дате, от самой ранней до самой поздней. Оно «совместимо с equals», как определено в Comparable.
Если все сравниваемые даты являются экземплярами LocalDate, то сравнение будет полностью основано на дате. Если некоторые сравниваемые даты находятся в разных хронологиях, то также учитывается хронология, см. ChronoLocalDate.compareTo(java.time.chrono.ChronoLocalDate).
- Указано в:
-
compareToв интерфейсеChronoLocalDate - Указано в:
-
compareToв интерфейсеComparable<ChronoLocalDate> - Параметры:
-
other- другая дата для сравнения, не null - Возвращает:
- значение компаратора, отрицательное, если меньше, положительное, если больше
isAfter
public boolean isAfter(ChronoLocalDate other)
Проверяет, является ли эта дата после указанной даты.
Это проверяет, представляет ли эта дата точку на временной шкале локального времени после другой даты.
LocalDate a = LocalDate.of(2012, 6, 30); LocalDate b = LocalDate.of(2012, 7, 1); a.isAfter(b) == false a.isAfter(a) == false b.isAfter(a) == true
Этот метод учитывает только положение двух дат на временной шкале локального времени. Он не учитывает хронологию или систему календаря. Это отличается от сравнения в compareTo(ChronoLocalDate), но соответствует подходу ChronoLocalDate.timeLineOrder().
- Определено:
-
isAfterв интерфейсеChronoLocalDate - Параметры:
-
other- другая дата для сравнения, не null - Возвращает:
- true, если эта дата после указанной даты
isBefore
public boolean isBefore(ChronoLocalDate other)
Проверяет, является ли эта дата до указанной даты.
Это проверяет, представляет ли эта дата точку на временной шкале локального времени до другой даты.
LocalDate a = LocalDate.of(2012, 6, 30); LocalDate b = LocalDate.of(2012, 7, 1); a.isBefore(b) == true a.isBefore(a) == false b.isBefore(a) == false
Этот метод учитывает только положение двух дат на временной шкале локального времени. Он не учитывает хронологию или систему календаря. Это отличается от сравнения в compareTo(ChronoLocalDate), но соответствует подходу ChronoLocalDate.timeLineOrder().
- Определено:
-
isBeforeв интерфейсеChronoLocalDate - Параметры:
-
other- другая дата для сравнения, не null - Возвращает:
- true, если эта дата до указанной даты
isEqual
public boolean isEqual(ChronoLocalDate other)
Проверяет, равна ли эта дата указанной дате.
Проверяет, представляет ли эта дата ту же точку на временной шкале локального времени, что и другая дата.
LocalDate a = LocalDate.of(2012, 6, 30); LocalDate b = LocalDate.of(2012, 7, 1); a.isEqual(b) == false a.isEqual(a) == true b.isEqual(a) == false
Этот метод учитывает только положение двух дат на временной шкале локального времени. Он не учитывает хронологию или систему календаря. Это отличается от сравнения в compareTo(ChronoLocalDate), но соответствует подходу ChronoLocalDate.timeLineOrder().
- Определено:
-
isEqualв интерфейсеChronoLocalDate - Параметры:
-
other- другая дата для сравнения, не null - Возвращает:
- true, если эта дата равна указанной дате
equals
public boolean equals(Object obj)
Проверяет, равна ли эта дата другой дате.
Сравнивает эту LocalDate с другой, гарантируя, что дата совпадает.
Сравниваются только объекты типа LocalDate, другие типы возвращают false. Для сравнения дат двух экземпляров TemporalAccessor, включая даты в двух разных хронологиях, используйте ChronoField.EPOCH_DAY в качестве компаратора.
- Определено:
-
equalsв интерфейсеChronoLocalDate - Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- объект для проверки, null возвращает false - Возвращает:
- true, если эта дата равна другой дате
- См. также:
-
Object.hashCode(),HashMap
hashCode
public int hashCode()
Хеш-код для этой даты.
- Определено:
-
hashCodeв интерфейсеChronoLocalDate - Переопределяет:
-
hashCodeв классеObject - Возвращает:
- подходящий хеш-код
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
toString
public String toString()
Выводит эту дату как String, например 2007-12-03.
Вывод будет в формате ISO-8601 uuuu-MM-dd.
- Определено:
-
toStringв интерфейсеChronoLocalDate - Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление этой даты, не null
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/LocalDate.html