- 所有已实现的接口:
-
Serializable
,Comparable<ChronoLocalDate>
,ChronoLocalDate
,Temporal
,TemporalAccessor
,TemporalAdjuster
此日期使用日本帝国历法。此历法主要在日本使用。
日本帝国历法与ISO历法相同,除了基于纪元的年份编号。预期年份被定义为等于ISO预期年份。
日本从明治6年开始使用公历。仅支持明治及以后的年代;不支持明治6年1月1日之前的日期。
例如,日本年份"Heisei 24"对应ISO年份"2012"。
调用japaneseDate.get(YEAR_OF_ERA)
将返回24。
调用japaneseDate.get(YEAR)
将返回2012。
调用japaneseDate.get(ERA)
将返回2,对应JapaneseChronology.ERA_HEISEI
。
这是一个基于值的类;程序员应将相等的实例视为可互换的,不应将实例用于同步,否则可能会发生不可预测的行为。例如,在将来的版本中,同步可能会失败。应使用equals
方法进行比较。
- 实现要求:
- 此类是不可变且线程安全的。
- 自版本:
- 1.8
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionfinal ChronoLocalDateTime
<JapaneseDate> 将此日期与时间组合以创建ChronoLocalDateTime
。boolean
将此日期与另一个日期进行比较,包括年表。static JapaneseDate
from
(TemporalAccessor temporal) 从临时对象获取JapaneseDate
。获取此日期的年表,即日本历法系统。getEra()
获取适用于此日期的年代。long
getLong
(TemporalField field) 获取指定字段的值为long
。int
hashCode()
此日期的哈希码。boolean
isSupported
(TemporalField field) 检查是否支持指定字段。int
返回此日期表示的月份的长度。minus
(long amountToSubtract, TemporalUnit unit) 返回减去指定周期后与此对象类型相同的对象。minus
(TemporalAmount amount) 返回减去指定数量后与此对象类型相同的对象。static JapaneseDate
now()
从默认时区的系统时钟获取当前JapaneseDate
。static JapaneseDate
从指定时钟获取当前JapaneseDate
。static JapaneseDate
从指定时区的系统时钟获取当前JapaneseDate
。static JapaneseDate
of
(int prolepticYear, int month, int dayOfMonth) 从纪元年、年份和月份字段获取表示日本历法系统中日期的JapaneseDate
。static JapaneseDate
of
(JapaneseEra era, int yearOfEra, int month, int dayOfMonth) 从年代、年份、月份和日期字段获取表示日本历法系统中日期的JapaneseDate
。plus
(long amountToAdd, TemporalUnit unit) 返回加上指定周期后与此对象类型相同的对象。plus
(TemporalAmount amount) 返回加上指定数量后与此对象类型相同的对象。toString()
返回对象的字符串表示形式。until
(ChronoLocalDate endDate) 计算此日期与另一个日期之间的周期作为ChronoPeriod
。long
until
(Temporal endExclusive, TemporalUnit unit) 根据指定单位计算直到另一个日期的时间量。with
(TemporalAdjuster adjuster) 返回进行调整后与此对象类型相同的调整对象。with
(TemporalField field, long newValue) 返回进行指定字段更改后与此对象类型相同的对象。Methods declared in class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods declared in interface java.time.chrono.ChronoLocalDate
adjustInto, compareTo, format, isAfter, isBefore, isEqual, isLeapYear, isSupported, lengthOfYear, query, toEpochDay, toString, until
Methods declared in interface java.time.temporal.TemporalAccessor
get, range
-
Method Details
-
now
- 返回:
- 使用系统时钟和默认时区的当前日期,不为null
-
now
- 参数:
-
zone
- 要使用的区域ID,不为null - 返回:
- 使用系统时钟的当前日期,不为null
-
now
从指定时钟获取当前JapaneseDate
。这将查询指定时钟以获取当前日期-今天。使用此方法允许使用替代时钟进行测试。可以使用依赖注入引入替代时钟。
- 参数:
-
clock
- 要使用的时钟,不为null - 返回:
- 当前日期,不为null
- 抛出:
-
DateTimeException
- 如果无法获取当前日期
-
of
从纪元、年代、年份和月份字段获取表示日本历法系统中日期的JapaneseDate
。此方法返回具有指定字段的
JapaneseDate
。日期必须对该年份和月份有效,否则将抛出异常。日本的月份和日是与ISO历法系统相同的。当纪元更改时,它们不会重置。例如:
64年1月6日昭和 = ISO 1989-01-06 64年1月7日昭和 = ISO 1989-01-07 1年1月8日平成 = ISO 1989-01-08 1年1月9日平成 = ISO 1989-01-09
- 参数:
-
era
- 日本纪元,不为null -
yearOfEra
- 日本年份 -
month
- 日本年份的月份,从1到12 -
dayOfMonth
- 日本月份的日期,从1到31 - 返回:
- 日本历法系统中的日期,不为null
- 抛出:
-
DateTimeException
- 如果任何字段的值超出范围,或者日期对于月份年份无效,或者日期不是日本纪元
-
of
从纪年、年份和月份字段获取表示日本历法系统中日期的JapaneseDate
。此方法返回具有指定字段的
JapaneseDate
。日期必须对该年份和月份有效,否则将抛出异常。日本的纪年、月份和日期与ISO历法系统相同。当纪元更改时,它们不会重置。
- 参数:
-
prolepticYear
- 日本纪年 -
month
- 日本年份的月份,从1到12 -
dayOfMonth
- 日本月份的日期,从1到31 - 返回:
- 日本历法系统中的日期,不为null
- 抛出:
-
DateTimeException
- 如果任何字段的值超出范围,或者日期对于月份年份无效
-
from
从临时对象获取JapaneseDate
。根据指定的临时对象获取日本历法系统中的日期。
TemporalAccessor
表示一组任意的日期和时间信息,此工厂将其转换为JapaneseDate
的实例。转换通常使用
EPOCH_DAY
字段,该字段在各种历法系统中标准化。此方法与函数接口
TemporalQuery
的签名匹配,允许通过方法引用JapaneseDate::from
来使用作为查询。- 参数:
-
temporal
- 要转换的临时对象,不为null - 返回:
- 日本历法系统中的日期,不为null
- 抛出:
-
DateTimeException
- 如果无法转换为JapaneseDate
-
getChronology
获取此日期的年表,即日本历法系统。Chronology
表示正在使用的历法系统。年代和其他字段在ChronoField
中由年表定义。- 指定者:
-
getChronology
在接口ChronoLocalDate
中 - 返回:
- 日本年表,不为null
-
getEra
获取适用于此日期的年代。日本历法系统由
JapaneseEra
定义多个年代。- 指定者:
-
getEra
在接口ChronoLocalDate
中 - 返回:
- 适用于此日期的年代,不为null
-
lengthOfMonth
public int lengthOfMonth()返回此日期表示的月份的长度。返回月份的长度,以天为单位。月份长度与ISO日历系统的长度相匹配。
- 指定者:
-
lengthOfMonth
在接口ChronoLocalDate
中 - 返回:
- 月份的长度,以天为单位
-
isSupported
检查是否支持指定的字段。检查此日期是否可以查询指定的字段。如果为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
从接口中复制的描述: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); // 大多数关键类实现TemporalAdjuster date = date.with(lastDayOfMonth()); // 从Adjusters进行静态导入 date = date.with(next(WEDNESDAY)); // 从Adjusters和DayOfWeek进行静态导入
- 指定者:
-
with
在接口ChronoLocalDate
中 - 指定者:
-
with
在接口Temporal
中 - 参数:
-
adjuster
- 要使用的调整器,不能为空 - 返回:
- 具有指定调整的相同类型的对象,不能为空
- 抛出:
-
DateTimeException
- 如果无法进行调整 -
ArithmeticException
- 如果发生数值溢出
-
plus
返回具有添加量的与此对象相同类型的对象。根据指定量的规则调整此时间,添加指定量。该量通常是一个
Period
,但也可以是实现TemporalAmount
接口的任何其他类型,例如Duration
。以下是一些示例代码,说明此方法的使用方式和原因:
date = date.plus(period); // 添加一个Period实例 date = date.plus(duration); // 添加一个Duration实例 date = date.plus(workingDays(6)); // 示例用户编写的workingDays方法
请注意,调用
plus
后跟minus
不能保证返回相同的日期时间。- 指定者:
-
plus
在接口ChronoLocalDate
中 - 指定者:
-
plus
在接口Temporal
中 - 参数:
-
amount
- 要添加的量,不能为空 - 返回:
- 具有指定调整的相同类型的对象,不能为空
- 抛出:
-
DateTimeException
- 如果无法进行添加 -
ArithmeticException
- 如果发生数值溢出
-
minus
返回具有减去量的与此对象相同类型的对象。根据指定量的规则调整此时间,减去指定量。该量通常是一个
Period
,但也可以是实现TemporalAmount
接口的任何其他类型,例如Duration
。以下是一些示例代码,说明此方法的使用方式和原因:
date = date.minus(period); // 减去一个Period实例 date = date.minus(duration); // 减去一个Duration实例 date = date.minus(workingDays(6)); // 示例用户编写的workingDays方法
请注意,调用
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
- 参数:
-
amountToSubtract
- 要减去的指定单位的数量,可以为负数 -
unit
- 要减去的数量的单位,不能为空 - 返回:
- 减去指定周期后的相同类型的对象,不能为空
-
atTime
从接口复制的描述:ChronoLocalDate
将此日期与时间组合以创建一个ChronoLocalDateTime
。返回一个
ChronoLocalDateTime
,由此日期和指定时间组成。所有日期和时间的可能组合都是有效的。- 指定者:
-
atTime
在接口ChronoLocalDate
- 参数:
-
localTime
- 要使用的本地时间,不能为空 - 返回:
- 由此日期和指定时间组成的本地日期时间,不能为空
-
until
从接口复制的描述:ChronoLocalDate
计算此日期与另一个日期之间的周期作为ChronoPeriod
。计算两个日期之间的周期。所有提供的年表都使用年、月和日来计算周期,但是
ChronoPeriod
API允许使用其他单位表示周期。起始点和结束点是
this
和指定的日期。如果结束在开始之前,则结果将为负数。年、月和日中的负号将相同。计算是使用此日期的年表执行的。如果需要,输入日期将被转换以匹配。
此实例是不可变的,并且不受此方法调用的影响。
- 指定者:
-
until
在接口ChronoLocalDate
- 参数:
-
endDate
- 结束日期(不包括),可以是任何年表,不能为空 - 返回:
- 此日期与结束日期之间的周期,不能为空
-
equals
将此日期与另一个日期(包括年表)进行比较。将此
JapaneseDate
与另一个日期进行比较,确保日期相同。仅比较
JapaneseDate
类型的对象,其他类型返回false。要比较两个TemporalAccessor
实例的日期,包括两个不同年表中的日期,请使用ChronoField.EPOCH_DAY
作为比较器。- 指定者:
-
equals
在接口ChronoLocalDate
- 参数:
-
obj
- 要检查的对象,null返回false - 返回:
- 如果相等则为true
- 参见:
-
hashCode
public int hashCode()此日期的哈希码。- 指定者:
-
hashCode
在接口ChronoLocalDate
- 返回:
- 基于年表和日期的适当哈希码
- 参见:
-
until
从接口复制的描述:ChronoLocalDate
计算以指定单位的形式直到另一个日期的时间量。计算两个
ChronoLocalDate
对象之间的时间量。起始点和结束点是this
和指定的日期。如果结束在开始之前,则结果将为负数。传递给此方法的Temporal
将使用Chronology.date(TemporalAccessor)
转换为ChronoLocalDate
。计算返回一个整数,表示两个日期之间的完整单位数。例如,可以使用startDate.until(endDate, DAYS)
来计算两个日期之间的天数。有两种等效的使用此方法的方式。第一种是调用此方法。第二种是使用
TemporalUnit.between(Temporal, Temporal)
:// 这两行是等效的 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
中 - 返回值:
- 对象的字符串表示形式。
-