- java.lang.Object
-
- java.time.chrono.ThaiBuddhistDate
-
- 实现的所有接口
-
Serializable
,Comparable<ChronoLocalDate>
,ChronoLocalDate
,Temporal
,TemporalAccessor
,TemporalAdjuster
public final class ThaiBuddhistDate extends Object implements ChronoLocalDate, Serializable
泰国佛教日历系统中的约会。该日期的运行时间为Thai Buddhist calendar 。 该日历系统主要用于泰国。 对齐日期使得
2484-01-01 (Buddhist)
是1941-01-01 (ISO)
。这是一个value-based班; 在
ThaiBuddhistDate
实例上使用身份敏感操作(包括引用相等(==
),标识哈希码或同步)可能会产生不可预测的结果,应该避免使用。 应使用equals
方法进行比较。- 实现要求:
- 这个类是不可变的和线程安全的。
- 从以下版本开始:
- 1.8
- 另请参见:
- Serialized Form
-
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 boolean
equals(Object obj)
将此日期与另一个日期进行比较,包括年表。static ThaiBuddhistDate
from(TemporalAccessor temporal)
从时间对象获得ThaiBuddhistDate
。ThaiBuddhistChronology
getChronology()
获取此日期的年表,即泰国佛教日历系统。ThaiBuddhistEra
getEra()
获取此日期适用的时代。int
hashCode()
此日期的哈希码。int
lengthOfMonth()
返回此日期表示的月份长度。ThaiBuddhistDate
minus(TemporalAmount amount)
返回与此对象相同类型的对象,并减去一定量。static ThaiBuddhistDate
now()
在默认时区中从系统时钟获取当前ThaiBuddhistDate
。static ThaiBuddhistDate
now(Clock clock)
从指定的时钟获得当前的ThaiBuddhistDate
。static ThaiBuddhistDate
now(ZoneId zone)
从指定时区的系统时钟获取当前ThaiBuddhistDate
。static ThaiBuddhistDate
of(int prolepticYear, int month, int dayOfMonth)
获得一个ThaiBuddhistDate
代表泰国佛教日历系统中的日期,从ThaiBuddhistDate
年份,月份和日期字段开始。ThaiBuddhistDate
plus(TemporalAmount amount)
返回与此对象相同类型的对象,并添加一个量。String
toString()
返回对象的字符串表示形式。long
until(Temporal endExclusive, TemporalUnit unit)
根据指定的单位计算到另一个日期的时间量。ThaiBuddhistDate
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 ThaiBuddhistDate now()
- 结果
- 使用系统时钟和默认时区的当前日期,不为空
-
now
public static ThaiBuddhistDate now(ZoneId zone)
从指定时区的系统时钟获取当前ThaiBuddhistDate
。这将查询
system clock
以获取当前日期。 指定时区可避免依赖于默认时区。使用此方法将无法使用备用时钟进行测试,因为时钟是硬编码的。
- 参数
-
zone
- 要使用的区域ID,不为空 - 结果
- 使用系统时钟的当前日期,不为空
-
now
public static ThaiBuddhistDate now(Clock clock)
从指定的时钟获得当前的ThaiBuddhistDate
。这将查询指定的时钟以获取当前日期 - 今天。 使用此方法允许使用备用时钟进行测试。 可以使用dependency injection引入备用时钟。
- 参数
-
clock
- 要使用的时钟,不为空 - 结果
- 当前日期,不为空
- 异常
-
DateTimeException
- 如果无法获得当前日期
-
of
public static ThaiBuddhistDate of(int prolepticYear, int month, int dayOfMonth)
获得ThaiBuddhistDate
代表泰国佛教日历系统中的日期,从ThaiBuddhistDate
年份,月份和月份字段开始。这将返回带有指定字段的
ThaiBuddhistDate
。 该日必须对年和月有效,否则将抛出异常。- 参数
-
prolepticYear
- 泰国佛教徒的普通年 -
month
- 泰国佛教徒的月份,从1到12 -
dayOfMonth
- 泰国佛教日,从1到31 - 结果
- 泰国佛教日历系统中的日期,不为空
- 异常
-
DateTimeException
- 如果任何字段的值超出范围,或者月份的月份无效
-
from
public static ThaiBuddhistDate from(TemporalAccessor temporal)
从时间对象获得ThaiBuddhistDate
。这基于指定的时间在泰国佛教日历系统中获得日期。
TemporalAccessor
表示一组任意日期和时间信息,该工厂将其转换为ThaiBuddhistDate
的实例。转换通常使用
EPOCH_DAY
字段,该字段在日历系统中标准化。该方法匹配功能接口
TemporalQuery
的签名,允许其通过方法参考ThaiBuddhistDate::from
用作查询。- 参数
-
temporal
- 要转换的时态对象,而不是null - 结果
- 泰国佛教日历系统中的日期,不为空
- 异常
-
DateTimeException
- 如果无法转换为ThaiBuddhistDate
- 另请参见:
-
Chronology.date(TemporalAccessor)
-
getChronology
public ThaiBuddhistChronology getChronology()
获取此日期的年表,即泰国佛教日历系统。Chronology
表示正在使用的日历系统。ChronoField
中的时代和其他领域由年表定义。- Specified by:
-
getChronology
in interfaceChronoLocalDate
- 结果
- 泰国佛教年表,不是空的
-
getEra
public ThaiBuddhistEra getEra()
获取此日期适用的时代。泰国佛教日历系统有两个时代,'BE'和'BEFORE_BE',由
ThaiBuddhistEra
定义。- Specified by:
-
getEra
接口ChronoLocalDate
- 结果
- 适用于此日期的时代,不为空
-
lengthOfMonth
public int lengthOfMonth()
返回此日期表示的月份长度。这将返回以天为单位的月份长度。 月份长度与ISO日历系统的长度相匹配。
- Specified by:
-
lengthOfMonth
在界面ChronoLocalDate
- 结果
- 以天为单位的月份长度
-
with
public ThaiBuddhistDate 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 ThaiBuddhistDate 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 ThaiBuddhistDate 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)
将此日期与另一个日期进行比较,包括年表。将此
ThaiBuddhistDate
与另一个相比较,确保日期相同。仅比较类型为
ThaiBuddhistDate
对象,其他类型返回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.
-
-