- java.lang.Object
-
- java.time.chrono.MinguoDate
-
- 实现的所有接口
-
Serializable
,Comparable<ChronoLocalDate>
,ChronoLocalDate
,Temporal
,TemporalAccessor
,TemporalAdjuster
public final class MinguoDate extends Object implements ChronoLocalDate, Serializable
民国历法系统的约会。本日期的运营时间为Minguo calendar 。 该日历系统主要用于中华民国,通常称为台湾。 对齐日期使得
0001-01-01 (Minguo)
是1912-01-01 (ISO)
。这是value-based班; 在
MinguoDate
实例上使用身份敏感操作(包括引用相等(==
),标识哈希码或同步)可能会产生不可预测的结果,应该避免使用。 应使用equals
方法进行比较。- 实现要求:
- 这个类是不可变的和线程安全的。
- 从以下版本开始:
- 1.8
- 另请参见:
- Serialized Form
-
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 boolean
equals(Object obj)
将此日期与另一个日期进行比较,包括年表。static MinguoDate
from(TemporalAccessor temporal)
从时间对象获得MinguoDate
。MinguoChronology
getChronology()
获取此日期的年表,即Minguo日历系统。MinguoEra
getEra()
获取此日期适用的时代。int
hashCode()
此日期的哈希码。int
lengthOfMonth()
返回此日期表示的月份长度。MinguoDate
minus(TemporalAmount amount)
返回与此对象相同类型的对象,并减去一定量。static MinguoDate
now()
在默认时区中从系统时钟获取当前MinguoDate
。static MinguoDate
now(Clock clock)
从指定的时钟获得当前的MinguoDate
。static MinguoDate
now(ZoneId zone)
从指定时区的系统时钟获取当前MinguoDate
。static MinguoDate
of(int prolepticYear, int month, int dayOfMonth)
获得MinguoDate
表示从MinguoDate
年,月份和日期字段开始的民国历年系统中的日期。MinguoDate
plus(TemporalAmount amount)
返回与此对象相同类型的对象,并添加一个量。String
toString()
返回对象的字符串表示形式。long
until(Temporal endExclusive, TemporalUnit unit)
根据指定的单位计算到另一个日期的时间量。MinguoDate
with(TemporalAdjuster adjuster)
返回与此对象相同类型的调整对象,并进行调整。-
声明方法的接口 java.time.chrono.ChronoLocalDate
adjustInto, atTime, compareTo, format, isAfter, isBefore, isEqual, isLeapYear, isSupported, isSupported, lengthOfYear, minus, plus, query, toEpochDay, toString, until, until, with
-
声明方法的接口 java.time.temporal.TemporalAccessor
get, getLong, range
-
-
-
-
方法详细信息
-
now
public static MinguoDate now()
- 结果
- 使用系统时钟和默认时区的当前日期,不为空
-
now
public static MinguoDate now(ZoneId zone)
- 参数
-
zone
- 要使用的区域ID,不为空 - 结果
- 使用系统时钟的当前日期,不为空
-
now
public static MinguoDate now(Clock clock)
从指定的时钟获得当前的MinguoDate
。这将查询指定的时钟以获取当前日期 - 今天。 使用此方法允许使用备用时钟进行测试。 可以使用dependency injection引入备用时钟。
- 参数
-
clock
- 要使用的时钟,不为空 - 结果
- 当前日期,不为空
- 异常
-
DateTimeException
- 如果无法获得当前日期
-
of
public static MinguoDate of(int prolepticYear, int month, int dayOfMonth)
获得MinguoDate
代表民国历年系统中的日期,从MinguoDate
年份,月份和日期字段开始。这将返回带有指定字段的
MinguoDate
。 该日必须对年和月有效,否则将抛出异常。- 参数
-
prolepticYear
- 民国prolepticYear
年 -
month
- 民国月,1至12 -
dayOfMonth
- 民国日,1至31日 - 结果
- 在民国历法系统中的日期,不为空
- 异常
-
DateTimeException
- 如果任何字段的值超出范围,或者月份的月份无效
-
from
public static MinguoDate from(TemporalAccessor temporal)
从时间对象获得MinguoDate
。这基于指定的时间获得民国历法系统中的日期。
TemporalAccessor
表示一组任意日期和时间信息,该工厂将其转换为MinguoDate
的实例。转换通常使用
EPOCH_DAY
字段,该字段在日历系统中标准化。该方法匹配功能接口
TemporalQuery
的签名,允许其通过方法参考MinguoDate::from
用作查询。- 参数
-
temporal
- 要转换的时态对象,而不是null - 结果
- 在民国历法系统中的日期,不为空
- 异常
-
DateTimeException
- 如无法兑换成MinguoDate
- 另请参见:
-
Chronology.date(TemporalAccessor)
-
getChronology
public MinguoChronology getChronology()
获取此日期的年表,即Minguo日历系统。Chronology
表示正在使用的日历系统。ChronoField
中的时代和其他领域由年表定义。- Specified by:
-
getChronology
接口ChronoLocalDate
- 结果
- 民国年表,不是空的
-
getEra
public MinguoEra getEra()
获取此日期适用的时代。民国历法系统有两个时代,'ROC'和'BEFORE_ROC',由
MinguoEra
定义。- Specified by:
-
getEra
在界面ChronoLocalDate
- 结果
- 适用于此日期的时代,不为空
-
lengthOfMonth
public int lengthOfMonth()
返回此日期表示的月份长度。这将返回以天为单位的月份长度。 月份长度与ISO日历系统的长度相匹配。
- Specified by:
-
lengthOfMonth
在界面ChronoLocalDate
- 结果
- 以天为单位的月份长度
-
with
public MinguoDate 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
in interfaceTemporal
- 参数
-
adjuster
- 要使用的调整器,不为null - 结果
- 具有指定调整的相同类型的对象,而不是null
- 异常
-
DateTimeException
- 如果无法进行调整 -
ArithmeticException
- 如果发生数字溢出
-
plus
public MinguoDate 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 MinguoDate 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)
将此日期与另一个日期进行比较,包括年表。将此
MinguoDate
与另一个进行比较,确保日期相同。仅比较类型为
MinguoDate
对象,其他类型返回false。 要比较两个TemporalAccessor
实例的日期,包括两个不同年代的日期,请使用ChronoField.EPOCH_DAY
作为比较器。- Specified by:
-
equals
在界面ChronoLocalDate
- 参数
-
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:
-
until
在界面Temporal
- 参数
-
endExclusive
- 结束日期,独家,在同一年表中转换为ChronoLocalDate
,不为null -
unit
- 计量金额的单位,而不是空 - 结果
- 此日期和结束日期之间的时间量
-
toString
public String toString()
复制自类:Object
描述返回对象的字符串表示形式。 通常,toString
方法返回一个“文本表示”此对象的字符串。 结果应该是简洁但信息丰富的表示,便于人们阅读。 建议所有子类都覆盖此方法。类
Object
的toString
方法返回一个字符串,该字符串由对象为实例的类的名称,符号字符“@
”以及对象的哈希码的无符号十六进制表示形式组成。 换句话说,此方法返回一个等于值的字符串:getClass().getName() + '@' + Integer.toHexString(hashCode())
- Specified by:
-
toString
在界面ChronoLocalDate
- 重写:
-
toString
在课程Object
- 结果
- a string representation of the object.
-
-