- 所有已实现的接口:
-
Serializable
,Comparable<ChronoLocalDate>
,ChronoLocalDate
,Temporal
,TemporalAccessor
,TemporalAdjuster
此日期使用 民国历 运行。该历法主要在中华民国(通常称为台湾)使用。日期对齐,使得 0001-01-01 (民国历)
等同于 1912-01-01 (ISO)
。
这是一个基于值的类;程序员应该将相等的实例视为可互换的,并且不应将实例用于同步,否则可能会发生不可预测的行为。例如,在将来的版本中,同步可能会失败。应该使用 equals
方法进行比较。
- 实现要求:
- 此类是不可变的且线程安全的。
- 自版本:
- 1.8
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionfinal ChronoLocalDateTime
<MinguoDate> 将此日期与时间结合以创建一个ChronoLocalDateTime
。boolean
将此日期与另一个日期进行比较,包括年表。static MinguoDate
from
(TemporalAccessor temporal) 从临时对象获取一个MinguoDate
。获取此日期的年表,即民国历系统。getEra()
获取适用于此日期的纪元。long
getLong
(TemporalField field) 获取指定字段的值作为long
。int
hashCode()
此日期的哈希码。int
返回此日期表示的月份的长度。minus
(long amountToSubtract, TemporalUnit unit) 返回与此对象相同类型的对象,减去指定的周期。minus
(TemporalAmount amount) 返回与此对象相同类型的对象,减去指定的数量。static MinguoDate
now()
从默认时区的系统时钟获取当前的MinguoDate
。static MinguoDate
从指定时钟获取当前的MinguoDate
。static MinguoDate
从指定时区的系统时钟获取当前的MinguoDate
。static MinguoDate
of
(int prolepticYear, int month, int dayOfMonth) 从纪元年、年份和月份字段中获取表示民国历系统中日期的MinguoDate
。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, 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
从指定时钟获取当前的MinguoDate
。这将查询指定的时钟以获取当前日期 - 今天。使用此方法允许使用替代时钟进行测试。可以使用 依赖注入 引入替代时钟。
- 参数:
-
clock
- 要使用的时钟,不为 null - 返回:
- 当前日期,不为 null
- 抛出:
-
DateTimeException
- 如果无法获取当前日期
-
of
从纪元年、年份和月份字段中获取表示民国历系统中日期的MinguoDate
。此方法返回具有指定字段的
MinguoDate
。日期必须对该年份和月份有效,否则将抛出异常。- 参数:
-
prolepticYear
- 民国纪年 -
month
- 民国年份,从 1 到 12 -
dayOfMonth
- 民国月份中的日期,从 1 到 31 - 返回:
- 民国历系统中的日期,不为 null
- 抛出:
-
DateTimeException
- 如果任何字段的值超出范围,或者日期月份的日期无效
-
from
从临时对象获取一个MinguoDate
。根据指定的临时对象获取民国历系统中的日期。
TemporalAccessor
表示一组任意的日期和时间信息,此工厂将其转换为MinguoDate
的实例。转换通常使用标准化的
EPOCH_DAY
字段,该字段在各种历法系统中是标准化的。此方法匹配函数接口
TemporalQuery
的签名,允许通过方法引用MinguoDate::from
使用它作为查询。- 参数:
-
temporal
- 要转换的临时对象,不为 null - 返回:
- 民国历系统中的日期,不为 null
- 抛出:
-
DateTimeException
- 如果无法转换为MinguoDate
-
getChronology
获取此日期的年表,即民国历系统。Chronology
表示正在使用的历法系统。年代和其他字段在ChronoField
中由年表定义。- 指定者:
-
getChronology
在接口ChronoLocalDate
中 - 返回:
- 民国年表,不为 null
-
getEra
获取适用于此日期的纪元。民国历系统有两个纪元,'民国' 和 '民国前',由
MinguoEra
定义。- 指定者:
-
getEra
在接口ChronoLocalDate
中 - 返回:
- 适用于此日期的纪元,不为 null
-
lengthOfMonth
public int lengthOfMonth()返回此日期表示的月份的长度。返回月份的天数长度。月份长度与 ISO 历法系统相匹配。
- 指定者:
-
lengthOfMonth
在接口ChronoLocalDate
中 - 返回:
- 月份的天数长度
-
getLong
从接口复制的描述:TemporalAccessor
获取指定字段的值作为long
。查询日期时间的指定字段的值。返回的值可能超出字段的有效值范围。如果日期时间无法返回值,因为该字段不受支持或出于其他原因,将抛出异常。
- 指定者:
-
getLong
在接口TemporalAccessor
中 - 参数:
-
field
- 要获取的字段,不为 null - 返回:
- 字段的值
-
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
将此日期与另一个日期(包括年表)进行比较。将此
MinguoDate
与另一个日期进行比较,确保日期相同。仅比较
MinguoDate
类型的对象,其他类型返回false。要比较两个TemporalAccessor
实例的日期,包括两个不同年表中的日期,请使用ChronoField.EPOCH_DAY
作为比较器。- 指定者:
-
equals
在接口ChronoLocalDate
中 - 参数:
-
obj
- 要检查的对象,null返回false - 返回:
- 如果此日期等于另一个日期,则返回true
- 参见:
-
hashCode
public int hashCode()此日期的哈希码。- 指定者:
-
hashCode
在接口ChronoLocalDate
中 - 返回:
- 基于年表和日期的适当哈希码
- 参见:
-
until
从接口复制的描述:ChronoLocalDate
计算以指定单位表示的另一个日期之间的时间量。以单个
TemporalUnit
的单位计算两个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
中 - 返回:
- 对象的字符串表示形式。
-