Класс JapaneseDate
- Все реализованные интерфейсы:
-
Serializable,Comparable<ChronoLocalDate>,ChronoLocalDate,Temporal,TemporalAccessor,TemporalAdjuster
public final class JapaneseDate extends Object implements ChronoLocalDate, Serializable
Эта дата работает с использованием японского императорского календаря. Эта система календаря в основном используется в Японии.
Японская императорская система календаря такая же, как система ISO-календаря, за исключением нумерации года на основе эры. Пролептический год определяется как равный пролептическому году ISO.
Япония ввела григорианский календарь, начиная с 6 года Мэйдзи. Поддерживаются только эры Мэйдзи и более поздние; даты до 6 года Мэйдзи, 1 января, не поддерживаются.
Например, японский год "Хэйсэй 24" соответствует году ISO "2012".
Вызов japaneseDate.get(YEAR_OF_ERA) вернет 24.
Вызов japaneseDate.get(YEAR) вернет 2012.
Вызов japaneseDate.get(ERA) вернет 2, соответствующий JapaneseChronology.ERA_HEISEI.
Это класc значений; программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, иначе может произойти непредсказуемое поведение. Например, в будущей версии синхронизация может завершиться неудачей. Для сравнения следует использовать метод equals.
- Требования к реализации:
- Этот класс неизменяем и потокобезопасен.
- С:
- 1.8
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final ChronoLocalDateTime<JapaneseDate> |
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() |
Возвращает строковое представление объекта. |
ChronoPeriod |
until |
Вычисляет период между этой датой и другой датой как ChronoPeriod. |
long |
until |
Вычисляет временной интервал до другой даты в терминах указанного единицы. |
JapaneseDate |
with |
Возвращает измененный объект того же типа, что и этот объект, с внесенной корректировкой. |
JapaneseDate |
with |
Возвращает объект того же типа, что и этот объект, с измененным указанным полем. |
Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе java.time.chrono.ChronoLocalDate
adjustInto, compareTo, format, isAfter, isBefore, isEqual, isLeapYear, isSupported, lengthOfYear, query, toEpochDay, toString, until
Методы, объявленные в интерфейсе java.time.temporal.TemporalAccessor
get, range
Подробное описание методов
now
public static JapaneseDate now()
Это обратится к system clock в часовом поясе по умолчанию, чтобы получить текущую дату.
Использование этого метода предотвратит возможность использования альтернативных часов для тестирования, так как часы закодированы жестко.
- Возвращает:
- текущую дату с использованием системных часов и часового пояса по умолчанию, не null
now
public static JapaneseDate now(ZoneId zone)
Это обратится к system clock, чтобы получить текущую дату. Указание часового пояса позволяет избежать зависимости от часового пояса по умолчанию.
Использование этого метода предотвратит возможность использования альтернативных часов для тестирования, так как часы закодированы жестко.
- Параметры:
-
zone- идентификатор часового пояса для использования, не null - Возвращает:
- текущую дату с использованием системных часов, не null
now
public static JapaneseDate now(Clock clock)
Это обратится к указанным часам, чтобы получить текущую дату – сегодня. Использование этого метода позволяет использовать альтернативные часы для тестирования. Альтернативные часы могут быть введены с помощью инъекции зависимостей.
- Параметры:
-
clock- используемые часы, не null - Возвращает:
- текущую дату, не null
- Исключения:
-
DateTimeException- если текущая дата не может быть получена
of
public static JapaneseDate of(JapaneseEra era, int yearOfEra, int month, int dayOfMonth)
Возвращает дату с указанными полями. День должен быть допустимым для года и месяца, в противном случае будет выброшено исключение.
Японский месяц и день месяца такие же, как в григорианской календарной системе. Они не сбрасываются при изменении эры. Например:
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)
Возвращает дату с указанными полями. День должен быть допустимым для года и месяца, в противном случае будет выброшено исключение.
Японский пролептический год, месяц и день месяца такие же, как в григорианской календарной системе. Они не сбрасываются при изменении эры.
- Параметры:
-
prolepticYear- японский пролептический год -
month- японский месяц, от 1 до 12 -
dayOfMonth- японский день месяца, от 1 до 31 - Возвращает:
- дату в японской календарной системе, не null
- Исключения:
-
DateTimeException- если значение любого поля выходит за пределы диапазона, или если день месяца недопустим для месяца-года
from
public static JapaneseDate from(TemporalAccessor temporal)
Получает дату в японской календарной системе на основе указанного временного объекта. Временной объект представляет собой произвольный набор данных о дате и времени, который этот фабричный метод преобразует в экземпляр 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()
Возвращает длительность месяца в днях. Длительность месяцев соответствует григорианской календарной системе.
- Определяется в:
-
lengthOfMonthв интерфейсеChronoLocalDate - Возвращает:
- длительность месяца в днях
isSupported
public boolean isSupported(TemporalField field)
Проверяет, может ли эта дата быть запрошена для указанного поля. Если false, то вызов методов 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)
TemporalAccessorЗапрашивает значение указанного поля в дате-времени. Возвращаемое значение может выходить за пределы допустимого диапазона значений для поля. Если дата-время не может вернуть значение, потому что поле не поддерживается или по какой-либо другой причине, будет выброшено исключение.
- Определяется в:
-
getLongв интерфейсеTemporalAccessor - Параметры:
-
field- поле для получения, не null - Возвращает:
- значение для поля
with
public JapaneseDate with(TemporalField field, long newValue)
ChronoLocalDate Возвращает новый объект, основанный на этом, со значением указанного поля, изменённым. Например, для LocalDate, это можно использовать для установки года, месяца или дня месяца. Возвращаемый объект будет иметь тот же тип, что и этот объект.
В некоторых случаях изменение поля не полностью определено. Например, если целевой объект представляет собой дату 31 января, а затем месяц меняется на февраль, это не ясно. В таких случаях поле отвечает за разрешение результата. Как правило, оно выберет предыдущую допустимую дату, которая в данном случае будет последним допустимым днём февраля.
- Определяется в:
-
withв интерфейсеChronoLocalDate - Определяется в:
-
withв интерфейсеTemporal - Параметры:
-
field- поле для установки в результате, не null -
newValue- новое значение поля в результате - Возвращает:
- объект того же типа с установленным указанным полем, не null
с
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)
ChronoLocalDate Этот метод возвращает новый объект, основанный на этом объекте, с добавленным указанным периодом. Например, для LocalDate, это можно использовать для добавления числа лет, месяцев или дней. Возвращаемый объект будет иметь тот же наблюдаемый тип, что и этот объект.
В некоторых случаях изменение поля не полностью определено. Например, если целевой объект представляет собой дату, соответствующую 31 января, то добавление одного месяца будет неясно. В таких случаях поле отвечает за разрешение результата. Обычно оно выбирает предыдущую допустимую дату, которая в данном примере будет последним допустимым днем февраля.
- Указано в:
-
plusв интерфейсеChronoLocalDate - Указано в:
-
plusв интерфейсеTemporal - Параметры:
-
amountToAdd- количество указанного блока для добавления, может быть отрицательным -
unit- блок единицы для добавления, не null - Возвращает:
- объект того же типа с добавленным указанным периодом, не null
minus
public JapaneseDate minus(long amountToAdd, TemporalUnit unit)
ChronoLocalDate Этот метод возвращает новый объект, основанный на этом объекте, с вычтенным указанным периодом. Например, для LocalDate, это можно использовать для вычитания числа лет, месяцев или дней. Возвращаемый объект будет иметь тот же наблюдаемый тип, что и этот объект.
В некоторых случаях изменение поля не полностью определено. Например, если целевой объект представляет собой дату, соответствующую 31 марта, то вычитание одного месяца будет неясно. В таких случаях поле отвечает за разрешение результата. Обычно оно выбирает предыдущую допустимую дату, которая в данном примере будет последним допустимым днем февраля.
- Указано в:
-
minusв интерфейсеChronoLocalDate - Указано в:
-
minusв интерфейсеTemporal - Параметры:
-
amountToAdd- количество указанного блока для вычитания, может быть отрицательным -
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 в качестве первого аргумента и преобразованное временное значение во входных данных — как второй аргумент.
Этот экземпляр неизменяем и не затрагивается этим вызовом метода.
- Specified by:
-
untilв интерфейсеChronoLocalDate - Specified by:
-
untilв интерфейсеTemporal - Parameters:
-
endExclusive- конечная дата, исключающая, которая преобразуется вChronoLocalDateв той же хронологии, не null -
unit- единица измерения, не null - Returns:
- количество времени между этой датой и конечной датой
toString
public String toString()
Object- Specified by:
-
toStringв интерфейсеChronoLocalDate - Overrides:
-
toStringв классеObject - Returns:
- строковое представление объекта.
© 1993, 2021, 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/17/docs/api/java.base/java/time/chrono/JapaneseDate.html