Класс JapaneseDate
- Все реализуемые интерфейсы:
Serializable, Comparable<ChronoLocalDate>, ChronoLocalDate, Temporal, TemporalAccessor, TemporalAdjuster
public final class JapaneseDate extends Object implements ChronoLocalDate, Serializable
Эта дата использует японский императорский календарь. Эта календарная система используется преимущественно в Японии.
Японская императорская календарная система совпадает с календарной системой ISO, за исключением нумерации лет по эрам. Пролептический год определяется как равный пролептическому году ISO.
Япония ввела григорианский календарь начиная с 6-го года Мэйдзи. Поддерживаются только эра Мэйдзи и последующие эры; даты до 1 января 6-го года Мэйдзи не поддерживаются.
Например, японский год «Хэйсэй 24» соответствует году ISO «2012».
Вызов japaneseDate.get(YEAR_OF_ERA) вернет 24.
Вызов japaneseDate.get(YEAR) вернет 2012.
Вызов japaneseDate.get(ERA) вернет 2, что соответствует JapaneseChronology.ERA_HEISEI.
Этот класс является классом-значением; программистам следует считать экземпляры, которые равны, взаимозаменяемыми и не использовать экземпляры для синхронизации, иначе возможно непредсказуемое поведение. Например, в будущей версии синхронизация может завершиться неудачей. Для сравнений следует использовать метод equals.
- Требования к реализации:
- Этот класс неизменяемый и потокобезопасный.
- С версии:
- 1.8
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final ChronoLocalDateTime |
atTime |
Объединяет эту дату со временем, создавая ChronoLocalDateTime. |
boolean |
equals |
Сравнивает эту дату с другой датой, включая хронологию. |
static JapaneseDate |
from |
Получает JapaneseDate из временного объекта. |
JapaneseChronology |
getChronology() |
Получает хронологию этой даты, то есть японскую календарную систему. |
JapaneseEra |
getEra() |
Получает эру, действующую на эту дату. |
long |
getLong |
Получает значение указанного поля в виде long. |
int |
hashCode() |
Хэш-код этой даты. |
boolean |
isSupported |
Проверяет, поддерживается ли указанное поле. |
int |
lengthOfMonth() |
Возвращает продолжительность месяца, представленного этой датой. |
JapaneseDate |
minus |
Возвращает объект того же типа, что и этот объект, с вычтенным указанным периодом. |
JapaneseDate |
minus |
Возвращает объект того же типа, что и этот объект, с вычтенным значением. |
static JapaneseDate |
now() |
Получает текущую JapaneseDate по системным часам в часовом поясе по умолчанию. |
static JapaneseDate |
now |
Получает текущую JapaneseDate по указанным часам. |
static JapaneseDate |
now |
Получает текущую JapaneseDate по системным часам в указанном часовом поясе. |
static JapaneseDate |
of |
Получает JapaneseDate, представляющую дату в японской календарной системе, из полей пролептического года, месяца и дня. |
static JapaneseDate |
of |
Получает JapaneseDate, представляющую дату в японской календарной системе, из полей эры, года эры, месяца и дня. |
JapaneseDate |
plus |
Возвращает объект того же типа, что и этот объект, с добавленным указанным периодом. |
JapaneseDate |
plus |
Возвращает объект того же типа, что и этот объект, с добавленным значением. |
String |
toString() |
Выводит эту дату в виде String. |
ChronoPeriod |
until |
Вычисляет период между этой датой и другой датой в виде ChronoPeriod. |
long |
until |
Вычисляет время до другой даты в единицах указанной единицы измерения. |
JapaneseDate |
with |
Возвращает скорректированный объект того же типа, что и этот объект, с примененной корректировкой. |
JapaneseDate |
with |
Возвращает объект того же типа, что и этот объект, с измененным указанным полем. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация устарела и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного времени. |
Методы, объявленные в интерфейсе ChronoLocalDate
adjustInto, compareTo, format, isAfter, isBefore, isEqual, isLeapYear, isSupported, lengthOfYear, query, toEpochDay | Модификатор и тип | Метод | Описание |
|---|---|---|
default Temporal |
adjustInto |
Корректирует указанный временной объект так, чтобы его дата совпадала с датой этого объекта. |
default int |
compareTo |
Сравнивает эту дату с другой датой, включая хронологию. |
default String |
format |
Форматирует эту дату с помощью указанного форматировщика. |
default boolean |
isAfter |
Проверяет, находится ли эта дата после указанной даты, не учитывая хронологию. |
default boolean |
isBefore |
Проверяет, находится ли эта дата до указанной даты, не учитывая хронологию. |
default boolean |
isEqual |
Проверяет, равна ли эта дата указанной дате, не учитывая хронологию. |
default boolean |
isLeapYear() |
Проверяет, является ли год високосным согласно календарной системе. |
default boolean |
isSupported |
Проверяет, поддерживается ли указанная единица измерения. |
default int |
lengthOfYear() |
Возвращает продолжительность года, представленного этой датой, согласно календарной системе. |
default <R> R |
query |
Выполняет запрос к этой дате с помощью указанного запроса. |
default long |
toEpochDay() |
Преобразует эту дату в количество дней от эпохи. |
Методы, объявленные в интерфейсе TemporalAccessor
get, range | Модификатор и тип | Метод | Описание |
|---|---|---|
default int |
get |
Получает значение указанного поля в виде int. |
default ValueRange |
range |
Получает диапазон допустимых значений для указанного поля. |
Подробное описание методов
now
public static JapaneseDate now()
JapaneseDate по системным часам в часовом поясе по умолчанию. Для получения текущей даты будет выполнен запрос к system clock в часовом поясе по умолчанию.
Использование этого метода исключает возможность использования альтернативных часов для тестирования, поскольку часы заданы непосредственно в коде.
- Возвращает:
- текущая дата по системным часам и в часовом поясе по умолчанию; значение не равно null
now
public static JapaneseDate now(ZoneId zone)
JapaneseDate по системным часам в указанном часовом поясе. Для получения текущей даты будет выполнен запрос к system clock. Указание часового пояса позволяет избежать зависимости от часового пояса по умолчанию.
Использование этого метода исключает возможность использования альтернативных часов для тестирования, поскольку часы заданы непосредственно в коде.
- Параметры:
-
zone— идентификатор часового пояса, который следует использовать; значение не равно null - Возвращает:
- текущая дата по системным часам; значение не равно null
now
public static JapaneseDate now(Clock clock)
JapaneseDate по указанным часам. Для получения текущей даты — сегодняшнего дня — будет выполнен запрос к указанным часам. Использование этого метода позволяет применять альтернативные часы для тестирования. Альтернативные часы можно подключить с помощью внедрения зависимостей.
- Параметры:
-
clock— часы, которые следует использовать; значение не равно null - Возвращает:
- текущая дата; значение не равно null
- Выбрасывает:
-
DateTimeException— если не удается получить текущую дату
of
public static JapaneseDate of(JapaneseEra era, int yearOfEra, int month, int dayOfMonth)
JapaneseDate, представляющую дату в японской календарной системе, на основе полей эры, года эры, месяца и дня месяца. Возвращает JapaneseDate с указанными полями. День должен быть допустимым для данного года и месяца, иначе будет выброшено исключение.
Японские месяц и день месяца совпадают с месяцем и днем месяца в календарной системе ISO. При смене эры они не сбрасываются. Например:
6th Jan Showa 64 = ISO 1989-01-06 7th Jan Showa 64 = ISO 1989-01-07 8th Jan Heisei 1 = ISO 1989-01-08 9th Jan Heisei 1 = ISO 1989-01-09
- Параметры:
-
era— японская эра; значение не равно null -
yearOfEra— японский год эры -
month— японский месяц, от 1 до 12 -
dayOfMonth— японский день месяца, от 1 до 31 - Возвращает:
- дата в японской календарной системе; значение не равно null
- Выбрасывает:
-
DateTimeException— если значение любого поля выходит за допустимый диапазон, день месяца недопустим для указанного месяца и года или дата не относится к японской эре
of
public static JapaneseDate of(int prolepticYear, int month, int dayOfMonth)
JapaneseDate, представляющую дату в японской календарной системе, на основе полей пролептического года, месяца и дня месяца. Возвращает JapaneseDate с указанными полями. День должен быть допустимым для данного года и месяца, иначе будет выброшено исключение.
Японские пролептические год, месяц и день месяца совпадают с годом, месяцем и днем месяца в календарной системе ISO. При смене эры они не сбрасываются.
- Параметры:
-
prolepticYear— японский пролептический год -
month— японский месяц, от 1 до 12 -
dayOfMonth— японский день месяца, от 1 до 31 - Возвращает:
- дата в японской календарной системе; значение не равно null
- Выбрасывает:
-
DateTimeException— если значение любого поля выходит за допустимый диапазон или день месяца недопустим для указанного месяца и года
from
public static JapaneseDate from(TemporalAccessor temporal)
JapaneseDate из временного объекта. Этот метод получает дату в японской календарной системе на основе указанного временного объекта. TemporalAccessor представляет произвольный набор сведений о дате и времени, который данная фабрика преобразует в экземпляр JapaneseDate.
При преобразовании обычно используется поле EPOCH_DAY, стандартизированное для всех календарных систем.
Сигнатура этого метода соответствует сигнатуре функционального интерфейса TemporalQuery, поэтому его можно использовать в качестве запроса через ссылку на метод: JapaneseDate::from.
- Параметры:
-
temporal— временной объект для преобразования; значение не равно null - Возвращает:
- дата в японской календарной системе; значение не равно null
- Выбрасывает:
-
DateTimeException— если не удается преобразовать объект вJapaneseDate
getChronology
public JapaneseChronology getChronology()
Chronology представляет используемую календарную систему. Эра и другие поля в ChronoField определяются хронологией.
- Определено в:
-
getChronologyв интерфейсеChronoLocalDate - Возвращает:
- японская хронология; значение не равно null
getEra
public JapaneseEra getEra()
В японской календарной системе есть несколько эр, определенных в JapaneseEra.
- Определено в:
-
getEraв интерфейсеChronoLocalDate - Возвращает:
- эра, действующая на эту дату; значение не равно null
lengthOfMonth
public int lengthOfMonth()
Возвращает количество дней в месяце. Продолжительность месяцев совпадает с продолжительностью месяцев в календарной системе ISO.
- Определено в:
-
lengthOfMonthв интерфейсеChronoLocalDate - Возвращает:
- количество дней в месяце
isSupported
public boolean isSupported(TemporalField field)
Проверяет, можно ли запросить у этой даты значение указанного поля. Если нет, вызов методов range и get приведет к выбрасыванию исключения.
Если поле является полем ChronoField, запрос обрабатывается здесь. Поддерживаются следующие поля:
-
DAY_OF_WEEK -
DAY_OF_MONTH -
DAY_OF_YEAR -
EPOCH_DAY -
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
getLong
public long getLong(TemporalField field)
TemporalAccessorlong. Запрашивает у даты и времени значение указанного поля. Возвращаемое значение может выходить за пределы допустимого диапазона значений этого поля. Если дата и время не могут вернуть значение, поскольку поле не поддерживается или по другой причине, будет выброшено исключение.
- Определено в:
-
getLongв интерфейсеTemporalAccessor - Параметры:
-
field— поле для получения; значение не равно null - Возвращает:
- значение поля
with
public JapaneseDate with(TemporalField field, long newValue)
Temporal Возвращает новый объект на основе этого объекта, в котором изменено значение указанного поля. Например, для LocalDate этот метод можно использовать для установки года, месяца или дня месяца. Возвращаемый объект будет иметь тот же наблюдаемый тип, что и этот объект.
В некоторых случаях правила изменения поля определены не полностью. Например, если целевой объект — дата, соответствующая 31 января, то неясно, как изменить месяц на февраль. В подобных случаях поле должно определить результат. Обычно выбирается предыдущая допустимая дата, то есть в этом примере последний допустимый день февраля.
- Определено в:
-
withв интерфейсеChronoLocalDate - Определено в:
-
withв интерфейсеTemporal - Параметры:
-
field— поле, которое следует задать в результате; значение не равно null -
newValue— новое значение поля в результате - Возвращает:
- объект того же типа с заданным указанным полем; значение не равно null
with
public JapaneseDate with(TemporalAdjuster adjuster)
Корректирует эту дату и время согласно правилам указанного средства корректировки. Простое средство корректировки может лишь установить значение одного поля, например года. Более сложное средство может изменить дату на последний день месяца. Набор распространенных корректировок представлен в TemporalAdjusters. К ним относятся поиск «последнего дня месяца» и «следующей среды». Средство корректировки отвечает за обработку особых случаев, таких как разная продолжительность месяцев и високосные годы.
Пример кода, показывающий, как и зачем используется этот метод:
date = date.with(Month.JULY); // most key classes implement TemporalAdjuster date = date.with(lastDayOfMonth()); // static import from Adjusters date = date.with(next(WEDNESDAY)); // static import from Adjusters and DayOfWeek
- Определено в:
-
withв интерфейсеChronoLocalDate - Определено в:
-
withв интерфейсеTemporal - Параметры:
-
adjuster— средство корректировки; значение не равно null - Возвращает:
- объект того же типа с примененной указанной корректировкой; значение не равно null
- Выбрасывает:
-
DateTimeException— если не удается выполнить корректировку -
ArithmeticException— при числовом переполнении
plus
public JapaneseDate plus(TemporalAmount amount)
Корректирует этот временной объект, прибавляя величину согласно ее правилам. Обычно величина представляет собой Period, но может быть объектом любого другого типа, реализующего интерфейс TemporalAmount, например Duration.
Пример кода, показывающий, как и зачем используется этот метод:
date = date.plus(period); // add a Period instance date = date.plus(duration); // add a Duration instance date = date.plus(workingDays(6)); // example user-written workingDays method
Обратите внимание: вызов plus, за которым следует minus, не гарантирует возврата той же даты и времени.
- Определено в:
-
plusв интерфейсеChronoLocalDate - Определено в:
-
plusв интерфейсеTemporal - Параметры:
-
amount— величина для прибавления; значение не равно null - Возвращает:
- объект того же типа с примененной указанной корректировкой; значение не равно null
- Выбрасывает:
-
DateTimeException— если прибавление невозможно -
ArithmeticException— при числовом переполнении
minus
public JapaneseDate minus(TemporalAmount amount)
Корректирует этот временной объект, вычитая величину согласно ее правилам. Обычно величина представляет собой Period, но может быть объектом любого другого типа, реализующего интерфейс TemporalAmount, например Duration.
Пример кода, показывающий, как и зачем используется этот метод:
date = date.minus(period); // subtract a Period instance date = date.minus(duration); // subtract a Duration instance date = date.minus(workingDays(6)); // example user-written workingDays method
Обратите внимание: вызов plus, за которым следует minus, не гарантирует возврата той же даты и времени.
- Определено в:
-
minusв интерфейсеChronoLocalDate - Определено в:
-
minusв интерфейсеTemporal - Параметры:
-
amount— величина для вычитания; значение не равно null - Возвращает:
- объект того же типа с примененной указанной корректировкой; значение не равно null
- Выбрасывает:
-
DateTimeException— если вычитание невозможно -
ArithmeticException— при числовом переполнении
plus
public JapaneseDate plus(long amountToAdd, TemporalUnit unit)
Temporal Этот метод возвращает новый объект на основе данного, к которому прибавлен указанный период. Например, для LocalDate его можно использовать для прибавления заданного количества лет, месяцев или дней. Возвращаемый объект будет иметь тот же наблюдаемый тип, что и этот объект.
В некоторых случаях правила изменения поля определены не полностью. Например, если целевой объект — дата, соответствующая 31 января, то неясно, как прибавить один месяц. В подобных случаях поле должно определить результат. Обычно выбирается предыдущая допустимая дата, то есть в этом примере последний допустимый день февраля.
- Определено в:
-
plusв интерфейсеChronoLocalDate - Определено в:
-
plusв интерфейсеTemporal - Параметры:
-
amountToAdd— количество единиц указанного типа для прибавления; может быть отрицательным -
unit— единица измерения прибавляемой величины; значение не равно null - Возвращает:
- объект того же типа с прибавленным указанным периодом; значение не равно null
minus
public JapaneseDate minus(long amountToSubtract, TemporalUnit unit)
Temporal Этот метод возвращает новый объект на основе данного, из которого вычтен указанный период. Например, для LocalDate его можно использовать для вычитания заданного количества лет, месяцев или дней. Возвращаемый объект будет иметь тот же наблюдаемый тип, что и этот объект.
В некоторых случаях правила изменения поля определены не полностью. Например, если целевой объект — дата, соответствующая 31 марта, то неясно, как вычесть один месяц. В подобных случаях поле должно определить результат. Обычно выбирается предыдущая допустимая дата, то есть в этом примере последний допустимый день февраля.
- Определено в:
-
minusв интерфейсеChronoLocalDate - Определено в:
-
minusв интерфейсеTemporal - Параметры:
-
amountToSubtract— количество единиц указанного типа для вычитания; может быть отрицательным -
unit— единица измерения вычитаемой величины; значение не равно null - Возвращает:
- объект того же типа с вычтенным указанным периодом; значение не равно null
atTime
public final ChronoLocalDateTime<JapaneseDate> atTime(LocalTime localTime)
ChronoLocalDateChronoLocalDateTime. Возвращает ChronoLocalDateTime, образованную этой датой и указанным временем. Допустимы все возможные комбинации даты и времени.
- Определено в:
-
atTimeв интерфейсеChronoLocalDate - Параметры:
-
localTime— местное время; значение не равно null - Возвращает:
- местные дата и время, образованные этой датой и указанным временем; значение не равно null
until
public ChronoPeriod until(ChronoLocalDate endDate)
ChronoLocalDateChronoPeriod. Вычисляет период между двумя датами. Все предоставляемые хронологии вычисляют период в годах, месяцах и днях, однако API ChronoPeriod позволяет представлять период в других единицах.
Начальной и конечной точками являются this и указанная дата. Если конечная точка предшествует начальной, результат будет отрицательным. Отрицательный знак будет одинаковым для количества лет, месяцев и дней.
Вычисление выполняется с использованием хронологии этой даты. При необходимости входная дата будет преобразована для ее согласования с этой хронологией.
Этот экземпляр неизменяем, и вызов данного метода на него не влияет.
- Определено в:
-
untilв интерфейсеChronoLocalDate - Параметры:
-
endDate— конечная дата, не включаемая в период; может относиться к любой хронологии; значение не равно null - Возвращает:
- период между этой датой и конечной датой; значение не равно null
equals
public boolean equals(Object obj)
Сравнивает эту JapaneseDate с другой и проверяет, совпадают ли даты.
Сравниваются только объекты типа JapaneseDate; для объектов других типов возвращается false. Чтобы сравнить даты двух экземпляров TemporalAccessor, в том числе даты в разных хронологиях, используйте ChronoField.EPOCH_DAY в качестве компаратора.
- Определено в:
-
equalsв интерфейсеChronoLocalDate - Параметры:
-
obj— объект для проверки; для null возвращается false - Возвращает:
- true, если эта дата равна другой дате
- См. также:
hashCode
public int hashCode()
- Определено в:
-
hashCodeв интерфейсеChronoLocalDate - Возвращает:
- подходящий хеш-код, основанный только на хронологии и дате
- См. также:
until
public long until(Temporal endExclusive, TemporalUnit unit)
ChronoLocalDate Вычисляет время между двумя объектами ChronoLocalDate в единицах одной TemporalUnit. Начальной и конечной точками являются this и указанная дата. Если конечная точка предшествует начальной, результат будет отрицательным. Переданная этому методу Temporal преобразуется в ChronoLocalDate с помощью Chronology.date(TemporalAccessor). Вычисление возвращает целое число — количество полных единиц между двумя датами. Например, количество дней между двумя датами можно вычислить с помощью startDate.until(endDate, DAYS).
Этот метод можно использовать двумя равнозначными способами. Первый — вызвать данный метод. Второй — использовать 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— конечная дата, не включаемая в период; преобразуется вChronoLocalDateтой же хронологии; значение не равно null -
unit— единица измерения времени; значение не равно null - Возвращает:
- время между этой датой и конечной датой
toString
public String toString()
ChronoLocalDateString. Вывод включает полную местную дату.
- Определено в:
-
toStringв интерфейсеChronoLocalDate - Переопределяет:
-
toStringв классеObject - Возвращает:
- отформатированная дата; значение не равно null
© 1993, 2025, 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.