Класс 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 |
Возвращает объект того же типа, что и этот объект, с изменённым указанным полем. |
Методы, объявленные в интерфейсе ChronoLocalDate
adjustInto, compareTo, format, isAfter, isBefore, isEqual, isLeapYear, isSupported, lengthOfYear, query, toEpochDay, toString, until
Методы, объявленные в интерфейсе TemporalAccessor
get, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/time/chrono/JapaneseDate.html