- 所有已实现的接口:
Serializable,Comparable<ChronoLocalDate>,ChronoLocalDate,Temporal,TemporalAccessor,TemporalAdjuster
此日期使用 日本皇历 操作。这种日历系统主要用于日本。
除了基于纪元的年份编号之外,日本帝国日历系统与 ISO 日历系统相同。 proleptic-year 被定义为等于 ISO proleptic-year。
日本从明治六年开始引入公历,只支持明治以后的纪元;不支持明治 6 月 1 日之前的日期。
例如,日本年份“Heisei 24”对应于 ISO 年份“2012”。
调用 japaneseDate.get(YEAR_OF_ERA) 将返回 24。
调用 japaneseDate.get(YEAR) 将返回 2012。
调用 japaneseDate.get(ERA) 将返回 2,对应于 JapaneseChronology.ERA_HEISEI 。
这是一个value-based类;程序员应该将 equal 的实例视为可互换的,并且不应使用实例进行同步,否则可能会发生不可预测的行为。例如,在未来的版本中,同步可能会失败。 equals 方法应该用于比较。
- 实现要求:
- 这个类是不可变的和线程安全的。
- 自从:
- 1.8
- 参见:
-
方法总结
修饰符和类型方法描述final ChronoLocalDateTime<JapaneseDate>将此日期与时间结合起来创建一个ChronoLocalDateTime。boolean将此日期与另一个日期进行比较,包括年表。static JapaneseDatefrom(TemporalAccessor temporal) 从时间对象中获取JapaneseDate。获取该日期的年表,即日本历法。getEra()获取适用于该日期的纪元。longgetLong(TemporalField field) 获取指定字段的值作为long。inthashCode()此日期的哈希码。booleanisSupported(TemporalField field) 检查是否支持指定的字段。int返回此日期表示的月份的长度。minus(long amountToAdd, TemporalUnit unit) 返回与此对象相同类型并减去指定句点的对象。minus(TemporalAmount amount) 返回与此对象相同类型的对象,但减去数量。static JapaneseDatenow()从默认时区的系统时钟获取当前JapaneseDate。static JapaneseDate从指定时钟获取当前JapaneseDate。static JapaneseDate从指定时区的系统时钟获取当前JapaneseDate。static JapaneseDateof(int prolepticYear, int month, int dayOfMonth) 从 proleptic-year、month-of-year 和 day-of-month 字段中获取代表日本日历系统中日期的JapaneseDate。static JapaneseDateof(JapaneseEra era, int yearOfEra, int month, int dayOfMonth) 从纪元、纪元年、年月和月日字段中获取表示日本日历系统中日期的JapaneseDate。plus(long amountToAdd, TemporalUnit unit) 返回与此对象相同类型的对象,并添加指定的时间段。plus(TemporalAmount amount) 返回与此对象相同类型的对象,并添加了数量。toString()返回对象的字符串表示形式。until(ChronoLocalDate endDate) 将此日期和另一个日期之间的时间段计算为ChronoPeriod。longuntil(Temporal endExclusive, TemporalUnit unit) 根据指定的单位计算到另一个日期的时间量。with(TemporalAdjuster adjuster) 返回与此对象具有相同类型并进行调整的调整对象。with(TemporalField field, long newValue) 返回与此对象相同类型的对象,但指定的字段已更改。在接口 java.time.chrono.ChronoLocalDate 中声明的方法
adjustInto, compareTo, format, isAfter, isBefore, isEqual, isLeapYear, isSupported, lengthOfYear, query, toEpochDay, toString, until在接口 java.time.temporal.TemporalAccessor 中声明的方法
get, range
-
方法详情
-
now
- 返回:
- 使用系统时钟和默认时区的当前日期,不为空
-
now
从指定时区的系统时钟获取当前JapaneseDate。这将查询
system clock以获取当前日期。指定时区避免了对默认时区的依赖。使用此方法将阻止使用备用时钟进行测试的能力,因为时钟是硬编码的。
- 参数:
zone- 要使用的区域 ID,不为空- 返回:
- 使用系统时钟的当前日期,不为空
-
now
从指定时钟获取当前JapaneseDate。这将查询指定的时钟以获取当前日期 - 今天。使用此方法允许使用备用时钟进行测试。可以使用 依赖注入 引入备用时钟。
- 参数:
clock- 使用的时钟,不为空- 返回:
- 当前日期,不为空
- 抛出:
DateTimeException- 如果无法获取当前日期
-
of
从纪元、纪元年、年月和月日字段中获取表示日本日历系统中日期的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- 日本时代,不为空yearOfEra- 日本纪年month- 日本月份,从 1 到 12dayOfMonth- 日本日期,从 1 到 31- 返回:
- 日本日历系统中的日期,不为空
- 抛出:
DateTimeException- 如果任何字段的值超出范围,或者日期对于月份年份无效,或者日期不是日本纪元
-
of
从 proleptic-year、month-of-year 和 day-of-month 字段中获取代表日本日历系统中日期的JapaneseDate。这将返回具有指定字段的
JapaneseDate。日期必须对年月有效,否则会抛出异常。日本的年、月、日与 ISO 日历系统中的相同。当时代改变时,它们不会被重置。
- 参数:
prolepticYear- 日本预兆年month- 日本月份,从 1 到 12dayOfMonth- 日本日期,从 1 到 31- 返回:
- 日本日历系统中的日期,不为空
- 抛出:
DateTimeException- 如果任何字段的值超出范围,或者如果日期对于月份 - 年份无效
-
from
从时间对象中获取JapaneseDate。这将根据指定的时间获取日本日历系统中的日期。
TemporalAccessor表示一组任意的日期和时间信息,该工厂将其转换为JapaneseDate的一个实例。转换通常使用跨日历系统标准化的
EPOCH_DAY字段。此方法与功能接口
TemporalQuery的签名相匹配,允许它通过方法参考JapaneseDate::from用作查询。- 参数:
temporal- 要转换的时间对象,不为空- 返回:
- 日本日历系统中的日期,不为空
- 抛出:
DateTimeException- 如果无法转换为JapaneseDate- 参见:
-
getChronology
获取该日期的年表,即日本历法。Chronology表示正在使用的日历系统。ChronoField中的时代和其他字段由年表定义。- 指定者:
getChronology在接口ChronoLocalDate中- 返回:
- 日本年表,不为空
-
getEra
获取适用于该日期的纪元。日本日历系统有多个由
JapaneseEra定义的纪元。- 指定者:
getEra在接口ChronoLocalDate中- 返回:
- 此日期适用的时代,不为空
-
lengthOfMonth
public int lengthOfMonth()返回此日期表示的月份的长度。这将以天为单位返回月份的长度。月份长度与 ISO 日历系统相匹配。
- 指定者:
lengthOfMonth在接口ChronoLocalDate中- 返回:
- 以天为单位的月份长度
-
isSupported
检查是否支持指定的字段。这将检查是否可以针对指定字段查询此日期。如果为 false,则调用
range和get方法将抛出异常。如果该字段是一个
ChronoField那么查询就在这里实现。支持的字段是:DAY_OF_WEEKDAY_OF_MONTHDAY_OF_YEAREPOCH_DAYMONTH_OF_YEARPROLEPTIC_MONTHYEAR_OF_ERAYEARERA
ChronoField实例将返回 false。如果该字段不是
ChronoField,则通过调用TemporalField.isSupportedBy(TemporalAccessor)传递this作为参数来获得此方法的结果。字段是否支持由字段决定。- 指定者:
isSupported在接口ChronoLocalDate中- 指定者:
isSupported在接口TemporalAccessor中- 参数:
field- 要检查的字段,null 返回 false- 返回:
- 如果该字段在此日期受支持,则为 true,否则为 false
-
getLong
从接口TemporalAccessor复制的描述获取指定字段的值作为long。这将查询指定字段值的日期时间。返回值可能超出该字段的有效值范围。如果日期时间不能返回值,因为不支持该字段或其他原因,将抛出异常。
- 指定者:
getLong在接口TemporalAccessor中- 参数:
field- 要获取的字段,不为空- 返回:
- 该字段的值
-
with
从接口ChronoLocalDate复制的描述返回与此对象相同类型的对象,但指定的字段已更改。这将返回一个基于此对象的新对象,其中指定字段的值已更改。例如,在
LocalDate上,这可用于设置年、月或月中的某天。返回的对象将具有与该对象相同的可观察类型。在某些情况下,更改字段未完全定义。例如,如果目标对象是表示 1 月 31 日的日期,那么将月份更改为 2 月将不清楚。在这种情况下,字段负责解析结果。通常它会选择之前的有效日期,在本例中为 2 月的最后一个有效日期。
- 指定者:
with在接口ChronoLocalDate中- 指定者:
with在接口Temporal中- 参数:
field- 要在结果中设置的字段,不为空newValue- 结果中字段的新值- 返回:
- 具有指定字段集的相同类型的对象,不为空
-
with
返回与此对象具有相同类型并进行调整的调整对象。这会根据指定调整器的规则调整此日期时间。一个简单的调整器可能只是设置其中一个字段,例如年份字段。更复杂的调节器可能会将日期设置为该月的最后一天。
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- 要使用的调节器,不为空- 返回:
- 进行了指定调整的同一类型的对象,不为空
- 抛出:
DateTimeException- 如果无法进行调整ArithmeticException- 如果发生数字溢出
-
plus
返回与此对象相同类型的对象,并添加了数量。这会调整此时间,根据指定数量的规则添加。数量通常是
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- 要添加的数量,不为空- 返回:
- 进行了指定调整的同一类型的对象,不为空
- 抛出:
DateTimeException- 如果无法添加ArithmeticException- 如果发生数字溢出
-
minus
返回与此对象相同类型的对象,但减去数量。这会调整此时间,根据指定数量的规则减去。数量通常是
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- 要减去的金额,不为空- 返回:
- 进行了指定调整的同一类型的对象,不为空
- 抛出:
DateTimeException- 如果无法进行减法ArithmeticException- 如果发生数字溢出
-
plus
从接口ChronoLocalDate复制的描述返回与此对象相同类型的对象,并添加指定的时间段。此方法返回一个基于此对象的新对象,并添加了指定的时间段。例如,在
LocalDate上,这可用于添加年数、月数或天数。返回的对象将具有与该对象相同的可观察类型。在某些情况下,更改字段未完全定义。例如,如果目标对象是表示 1 月 31 日的日期,那么添加一个月就不清楚了。在这种情况下,字段负责解析结果。通常它会选择之前的有效日期,在本例中为 2 月的最后一个有效日期。
- 指定者:
plus在接口ChronoLocalDate中- 指定者:
plus在接口Temporal中- 参数:
amountToAdd- 要添加的指定单位的数量,可能是负数unit- 添加量的单位,不为空- 返回:
- 添加了指定时间段的相同类型的对象,不为空
-
minus
从接口ChronoLocalDate复制的描述返回与此对象相同类型并减去指定句点的对象。此方法返回一个基于此对象并减去指定时间段的新对象。例如,在
LocalDate上,这可用于减去若干年、月或日。返回的对象将具有与该对象相同的可观察类型。在某些情况下,更改字段未完全定义。例如,如果目标对象是表示 3 月 31 日的日期,那么减去一个月就不清楚了。在这种情况下,字段负责解析结果。通常它会选择之前的有效日期,在本例中为 2 月的最后一个有效日期。
- 指定者:
minus在接口ChronoLocalDate中- 指定者:
minus在接口Temporal中- 参数:
amountToAdd- 要减去的指定单位的数量,可能为负数unit- 要减去的金额的单位,不为空- 返回:
- 减去指定期间的相同类型的对象,不为空
-
atTime
从接口ChronoLocalDate复制的描述将此日期与时间结合起来创建一个ChronoLocalDateTime。这将返回从该日期在指定时间形成的
ChronoLocalDateTime。日期和时间的所有可能组合均有效。- 指定者:
atTime在接口ChronoLocalDate中- 参数:
localTime- 使用的本地时间,不为空- 返回:
- 从此日期和指定时间形成的本地日期时间,不为空
-
until
从接口ChronoLocalDate复制的描述将此日期和另一个日期之间的时间段计算为ChronoPeriod。这将计算两个日期之间的时间段。所有提供的年表都使用年、月和日计算周期,但是
ChronoPeriodAPI 允许使用其他单位表示周期。起点和终点是
this和指定的日期。如果结束早于开始,结果将为负。年、月、日的负号相同。使用该日期的年表进行计算。如有必要,输入的日期将被转换以匹配。
此实例是不可变的,不受此方法调用的影响。
- 指定者:
until在接口ChronoLocalDate中- 参数:
endDate- 结束日期,唯一的,可以按任何时间顺序排列,不为空- 返回:
- 此日期和结束日期之间的时间段,不为空
-
equals
将此日期与另一个日期进行比较,包括年表。将此
JapaneseDate与另一个进行比较,确保日期相同。只比较
JapaneseDate类型的对象,其他类型返回 false。要比较两个TemporalAccessor实例的日期,包括两个不同年表中的日期,请使用ChronoField.EPOCH_DAY作为比较器。- 指定者:
equals在接口ChronoLocalDate中- 参数:
obj- 要检查的对象,null 返回 false- 返回:
- 如果这等于另一个日期,则为真
- 参见:
-
hashCode
public int hashCode()此日期的哈希码。- 指定者:
hashCode在接口ChronoLocalDate中- 返回:
- 仅基于年表和日期的合适哈希码
- 参见:
-
until
从接口ChronoLocalDate复制的描述根据指定的单位计算到另一个日期的时间量。这根据单个
TemporalUnit计算两个ChronoLocalDate对象之间的时间量。起点和终点是this和指定的日期。如果结束早于开始,结果将为负。传递给此方法的Temporal使用Chronology.date(TemporalAccessor)转换为ChronoLocalDate。计算返回一个整数,表示两个日期之间的完整单位数。例如,可以使用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,不为空unit- 衡量数量的单位,不为空- 返回:
- 此日期与结束日期之间的时间量
-
toString
从类复制的描述:Object返回对象的字符串表示形式。- 指定者:
toString在接口ChronoLocalDate中- 重写:
toString在类Object中- 返回:
- 对象的字符串表示形式。
-