- java.lang.Object
-
- java.time.chrono.JapaneseDate
-
- 实现的所有接口
-
Serializable,Comparable<ChronoLocalDate>,ChronoLocalDate,Temporal,TemporalAccessor,TemporalAdjuster
public final class JapaneseDate extends Object implements ChronoLocalDate, Serializable
日本帝国日历系统中的日期。本日期的运营时间为Japanese Imperial calendar 。 该日历系统主要在日本使用。
除了基于时代的年份编号之外,日本帝国日历系统与ISO日历系统相同。 预感年定义为等于ISO预感年。
日本从明治6开始引入公历。只支持明治及后来的时代; 不支持1月1日明治6日之前的日期。
例如,日本年“Heisei 24”对应于ISO年份“2012”。
致电japaneseDate.get(YEAR_OF_ERA)将返回24。
致电japaneseDate.get(YEAR)将返回2012。
致电japaneseDate.get(ERA)将返回2,对应于JapaneseChronology.ERA_HEISEI。这是一个value-based班; 在
JapaneseDate实例上使用身份敏感操作(包括引用相等(==),标识哈希码或同步)可能会产生不可预测的结果,应该避免使用。 应使用equals方法进行比较。- 实现要求:
- 这个类是不可变的和线程安全的。
- 从以下版本开始:
- 1.8
- 另请参见:
- Serialized Form
-
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 booleanequals(Object obj)将此日期与另一个日期进行比较,包括年表。static JapaneseDatefrom(TemporalAccessor temporal)从时间对象获得JapaneseDate。JapaneseChronologygetChronology()获取此日期的年表,即日历系统。JapaneseEragetEra()获取此日期适用的时代。inthashCode()此日期的哈希码。booleanisSupported(TemporalField field)检查是否支持指定的字段。intlengthOfMonth()返回此日期表示的月份长度。JapaneseDateminus(TemporalAmount amount)返回与此对象相同类型的对象,并减去一定量。static JapaneseDatenow()从默认时区的系统时钟获取当前JapaneseDate。static JapaneseDatenow(Clock clock)从指定的时钟获得当前的JapaneseDate。static JapaneseDatenow(ZoneId zone)从指定时区的系统时钟获取当前JapaneseDate。static JapaneseDateof(int prolepticYear, int month, int dayOfMonth)从JapaneseDate年,月份和日期字段获得表示日历系统中日期的JapaneseDate。static JapaneseDateof(JapaneseEra era, int yearOfEra, int month, int dayOfMonth)从时代,年份,月份和日期字段获得表示日历系统中日期的JapaneseDate。JapaneseDateplus(TemporalAmount amount)返回与此对象相同类型的对象,并添加一个量。StringtoString()返回对象的字符串表示形式。longuntil(Temporal endExclusive, TemporalUnit unit)根据指定的单位计算到另一个日期的时间量。JapaneseDatewith(TemporalAdjuster adjuster)返回与此对象相同类型的调整对象,并进行调整。-
声明方法的接口 java.time.chrono.ChronoLocalDate
adjustInto, atTime, compareTo, format, isAfter, isBefore, isEqual, isLeapYear, isSupported, lengthOfYear, minus, plus, query, toEpochDay, toString, until, until, with
-
声明方法的接口 java.time.temporal.TemporalAccessor
get, getLong, range
-
-
-
-
方法详细信息
-
now
public static JapaneseDate now()
- 结果
- 使用系统时钟和默认时区的当前日期,不为空
-
now
public static JapaneseDate now(ZoneId zone)
- 参数
-
zone- 要使用的区域ID,不为空 - 结果
- 使用系统时钟的当前日期,不为空
-
now
public static JapaneseDate now(Clock clock)
从指定的时钟获得当前的JapaneseDate。这将查询指定的时钟以获取当前日期 - 今天。 使用此方法允许使用备用时钟进行测试。 可以使用dependency injection引入备用时钟。
- 参数
-
clock- 要使用的时钟,不为空 - 结果
- 当前日期,不为空
- 异常
-
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- 日本时代,不是空的 -
yearOfEra- 日本时代的一年 -
month- 日本的一年中,从1到12 -
dayOfMonth- 日本的一天,从1到31 - 结果
- 日历系统中的日期,不为空
- 异常
-
DateTimeException- 如果任何字段的值超出范围,或者月中的日期无效,或者日期不是日本时代
-
of
public static JapaneseDate of(int prolepticYear, int month, int dayOfMonth)
从JapaneseDate年,月份和日期字段获得表示日历系统中的日期的JapaneseDate。这将返回带有指定字段的
JapaneseDate。 该日必须对年和月有效,否则将抛出异常。日本的早期,月份和日期与ISO日历系统中的相同。 当时代变化时,它们不会被重置。
- 参数
-
prolepticYear- 日本的普通年 -
month- 日本的月份,从1到12 -
dayOfMonth- 日本的一天,从1到31 - 结果
- 日历系统中的日期,不为空
- 异常
-
DateTimeException- 如果任何字段的值超出范围,或者月份的月份无效
-
from
public static JapaneseDate from(TemporalAccessor temporal)
从时间对象获得JapaneseDate。这基于指定的时间在日本日历系统中获得日期。
TemporalAccessor表示一组任意日期和时间信息,该工厂将其转换为JapaneseDate的实例。转换通常使用
EPOCH_DAY字段,该字段在日历系统中标准化。该方法匹配功能接口
TemporalQuery的签名,允许其通过方法参考JapaneseDate::from用作查询。- 参数
-
temporal- 要转换的时态对象,而不是null - 结果
- 日历系统中的日期,不为空
- 异常
-
DateTimeException- 如果无法转换为JapaneseDate - 另请参见:
-
Chronology.date(TemporalAccessor)
-
getChronology
public JapaneseChronology getChronology()
获取此日期的年表,即日历系统。Chronology表示正在使用的日历系统。ChronoField中的时代和其他领域由年表定义。- Specified by:
-
getChronologyin interfaceChronoLocalDate - 结果
- 日本年表,不是空的
-
getEra
public JapaneseEra getEra()
获取此日期适用的时代。日历系统具有由
JapaneseEra定义的多个时代。- Specified by:
-
getErain interfaceChronoLocalDate - 结果
- 适用于此日期的时代,不为空
-
lengthOfMonth
public int lengthOfMonth()
返回此日期表示的月份长度。这将返回以天为单位的月份长度。 月份长度与ISO日历系统的长度相匹配。
- Specified by:
-
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作为参数。 字段是否受支持由字段确定。- Specified by:
-
isSupportedin interfaceChronoLocalDate - Specified by:
-
isSupported接口TemporalAccessor - 参数
-
字段- 要检查的字段,null返回false - 结果
- 如果此日期支持该字段,则为true,否则为false
-
-
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- Specified by:
-
with在界面ChronoLocalDate - Specified by:
-
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返回相同的日期时间。- Specified by:
-
plus接口ChronoLocalDate - Specified by:
-
plus在界面Temporal - 参数
-
amount- 要添加的金额,不为空 - 结果
- 具有指定调整的相同类型的对象,而不是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不能保证返回相同的日期时间。- Specified by:
-
minus,界面ChronoLocalDate - Specified by:
-
minus接口Temporal - 参数
-
amount- 要减去的金额,而不是空 - 结果
- 具有指定调整的相同类型的对象,而不是null
- 异常
-
DateTimeException- 如果无法进行减法 -
ArithmeticException- 如果发生数字溢出
-
equals
public boolean equals(Object obj)
将此日期与另一个日期进行比较,包括年表。将此
JapaneseDate与另一个相比较,确保日期相同。仅比较类型为
JapaneseDate对象,其他类型返回false。 要比较两个TemporalAccessor实例的日期,包括两个不同年代的日期,请使用ChronoField.EPOCH_DAY作为比较器。- Specified by:
-
equalsin interfaceChronoLocalDate - 参数
-
obj- 要检查的对象,null返回false - 结果
- 如果这等于另一个日期,则为true
- 另请参见:
-
Object.hashCode(),HashMap
-
hashCode
public int hashCode()
此日期的哈希码。- Specified by:
-
hashCode在界面ChronoLocalDate - 结果
- 仅基于年表和日期的合适哈希码
- 另请参见:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
until
public long until(Temporal endExclusive, TemporalUnit unit)
从界面复制的说明:ChronoLocalDate根据指定的单位计算到另一个日期的时间量。这将根据单个
TemporalUnit计算两个ChronoLocalDate对象之间的时间量。 起点和终点是this和指定日期。 如果结束在开始之前,结果将是否定的。 所述Temporal传递给此方法被转换为ChronoLocalDate使用Chronology.date(TemporalAccessor)。 计算返回一个整数,表示两个日期之间的完整单位数。 例如,可以使用startDate.until(endDate, DAYS)计算两个日期之间的天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:
-
untilin interfaceTemporal - 参数
-
endExclusive- 结束日期,独家,在同一年表中转换为ChronoLocalDate,不为null -
unit- 计量金额的单位,而不是空 - 结果
- 此日期和结束日期之间的时间量
-
toString
public String toString()
复制自类的说明:Object返回对象的字符串表示形式。 通常,toString方法返回一个“文本表示”此对象的字符串。 结果应该是简洁但信息丰富的表示,便于人们阅读。 建议所有子类都覆盖此方法。类
Object的toString方法返回一个字符串,该字符串由对象为实例的类的名称,符号字符“@”以及对象的哈希码的无符号十六进制表示形式组成。 换句话说,此方法返回一个等于值的字符串:getClass().getName() + '@' + Integer.toHexString(hashCode())
- Specified by:
-
toString在界面ChronoLocalDate - 重写:
-
toString在课程Object - 结果
- 对象的字符串表示形式。
-
-