- java.lang.Object
-
- java.time.chrono.ThaiBuddhistDate
-
- All Implemented Interfaces:
-
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
-
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 ChronoLocalDateTime<ThaiBuddhistDate>
atTime(LocalTime localTime)
结合此日期与时间创建一个ChronoLocalDateTime
。boolean
equals(Object obj)
将此日期与其他日期进行比较,包括年表。static ThaiBuddhistDate
from(TemporalAccessor temporal)
从时间对象获取一个ThaiBuddhistDate
。ThaiBuddhistChronology
getChronology()
获得这个日期的年表,这是泰国佛教日历系统。ThaiBuddhistEra
getEra()
获得这个时代适用的时代。long
getLong(TemporalField field)
获取指定字段的long
。int
hashCode()
这个日期的哈希码。int
lengthOfMonth()
返回由此日期表示的月份的长度。ThaiBuddhistDate
minus(long amountToAdd, TemporalUnit unit)
返回与该对象相同类型的对象,并减去指定的时间段。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
plus(long amountToAdd, TemporalUnit unit)
返回与此对象相同类型的对象,并添加指定的句点。ThaiBuddhistDate
plus(TemporalAmount amount)
返回与此对象相同类型的对象,并添加一个金额。ValueRange
range(TemporalField field)
获取指定字段的有效值的范围。long
toEpochDay()
将此日期转换为大纪元日。String
toString()
返回对象的字符串表示形式。long
until(Temporal endExclusive, TemporalUnit unit)
根据指定的单位计算直到另一个日期的时间量。ChronoPeriod
until(ChronoLocalDate endDate)
计算此日期和另一个日期之间的期间为ChronoPeriod
。ThaiBuddhistDate
with(TemporalAdjuster adjuster)
通过进行调整,返回与该对象相同类型的调整对象。ThaiBuddhistDate
with(TemporalField field, long newValue)
返回与该对象具有相同类型的对象,并更改指定的字段。-
Methods inherited from interface java.time.chrono.ChronoLocalDate
adjustInto, compareTo, format, isAfter, isBefore, isEqual, isLeapYear, isSupported, isSupported, lengthOfYear, query, timeLineOrder, toString, until
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.time.temporal.TemporalAccessor
get
-
-
-
-
方法详细信息
-
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
- 要使用的时钟,不为空 - 结果
- 当前日期,不为null
- 异常
-
DateTimeException
- 如果当前日期无法获得
-
of
public static ThaiBuddhistDate of(int prolepticYear, int month, int dayOfMonth)
获取ThaiBuddhistDate
代表泰国佛教日历系统中的日期,月份和月份月份的日期。这将返回一个
ThaiBuddhistDate
与指定的字段。 该日期必须在年和月中有效,否则将抛出异常。- 参数
-
prolepticYear
- 泰国佛教prolepticYear
年 -
month
- 泰国佛教月份,从1到12 -
dayOfMonth
- 泰国佛教日月,从1到31 - 结果
- 泰国佛教日历系统的日期,不为空
- 异常
-
DateTimeException
- 如果任何字段的值超出范围,或者月中的日期对于月份无效
-
from
public static ThaiBuddhistDate from(TemporalAccessor temporal)
从时间对象获取ThaiBuddhistDate
。这在泰国佛教日历系统中基于指定的时间获取日期。 A
TemporalAccessor
表示日期和时间信息的任意集合,该工厂转换为ThaiBuddhistDate
的实例。转换通常使用
EPOCH_DAY
字段,这是跨日历系统标准化的。该方法匹配功能界面
TemporalQuery
的签名,允许其通过方法参考ThaiBuddhistDate::from
用作查询。- 参数
-
temporal
- 要转换的时间对象,不为null - 结果
- 泰国佛教日历系统的日期,不为空
- 异常
-
DateTimeException
- 如果无法转换为ThaiBuddhistDate
- 另请参见:
-
Chronology.date(TemporalAccessor)
-
getChronology
public ThaiBuddhistChronology getChronology()
获得这个日期的年表,这是泰国佛教日历系统。Chronology
表示正在使用的日历系统。 时代和其他领域在ChronoField
由时间顺序定义。- Specified by:
-
getChronology
在接口ChronoLocalDate
- 结果
- 泰国佛教年表,不为零
-
getEra
public ThaiBuddhistEra getEra()
获得这个时代适用的时代。泰国佛教日历系统有两个时代:“BE”和“BEFORE_BE”,由
ThaiBuddhistEra
定义。- Specified by:
-
getEra
在接口ChronoLocalDate
- 结果
- 在此日期适用的时代不为零
-
lengthOfMonth
public int lengthOfMonth()
返回由此日期表示的月份的长度。这将以天为单位返回月份的长度。 月份长度与ISO日历系统相匹配。
- Specified by:
-
lengthOfMonth
在接口ChronoLocalDate
- 结果
- 月的长度以天为单位
-
range
public ValueRange range(TemporalField field)
说明从界面TemporalAccessor
复制获取指定字段的有效值的范围。所有字段都可以表示为
long
整数。 此方法返回描述该值的有效范围的对象。 该时间对象的值用于提高返回范围的精度。 如果日期时间无法返回范围,因为该字段不受支持或由于其他原因,将抛出异常。请注意,结果仅描述最小和最大有效值,重要的是不要太多读取它们。 例如,可以在该范围内的值对该字段无效。
- Specified by:
-
range
在接口TemporalAccessor
- 参数
-
field
- 查询范围的字段,不为null - 结果
- 字段的有效值的范围不为null
-
getLong
public long getLong(TemporalField field)
描述从接口TemporalAccessor
复制获取指定字段的值作为long
。这将查询指定字段的值的日期时间。 返回的值可能在该字段的值的有效范围之外。 如果日期时间不能返回值,因为该字段不受支持或由于其他原因,将抛出异常。
- Specified by:
-
getLong
在接口TemporalAccessor
- 参数
-
field
- 要获取的字段,不为null - 结果
- 该字段的值
-
with
public ThaiBuddhistDate with(TemporalField field, long newValue)
描述从界面ChronoLocalDate
复制返回与该对象具有相同类型的对象,并更改指定的字段。这将返回一个基于该对象的新对象,其中指定字段的值已更改。 例如,在
LocalDate
,这可以用于设置年,月或月。 返回的对象将具有与该对象相同的可观察类型。在某些情况下,更改字段尚未完全定义。 例如,如果目标对象是代表1月31日的日期,则将月份更改为2月份将不清楚。 在这种情况下,该领域负责解决结果。 通常,它将选择先前的有效日期,这将是本例中最后一个有效的二月份。
- Specified by:
-
with
在接口ChronoLocalDate
- Specified by:
-
with
在接口Temporal
- 参数
-
field
- 要在结果中设置的字段,不为null -
newValue
- 结果中字段的新值 - 结果
- 与指定字段集相同类型的对象,不为null
-
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
- 异常
-
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 - 结果
- 具有指定调整的相同类型的对象,不为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
- 如果发生数字溢出
-
plus
public ThaiBuddhistDate plus(long amountToAdd, TemporalUnit unit)
描述从接口ChronoLocalDate
复制返回与此对象相同类型的对象,并添加指定的句点。此方法基于添加了指定句点的新对象。 例如,在
LocalDate
,这可以用来添加几年,几个月或几天。 返回的对象将具有与该对象相同的可观察类型。在某些情况下,更改字段尚未完全定义。 例如,如果目标对象是代表1月31日的日期,则添加一个月将不清楚。 在这种情况下,该领域负责解决结果。 通常,它将选择先前的有效日期,这将是本例中最后一个有效的二月份。
- Specified by:
-
plus
在接口ChronoLocalDate
- Specified by:
-
plus
在接口Temporal
- 参数
-
amountToAdd
- 要添加的指定单位的数量,可能为负数 -
unit
- 要添加的单位,不为null - 结果
- 与指定期间相同类型的对象添加,不为空
-
minus
public ThaiBuddhistDate minus(long amountToAdd, TemporalUnit unit)
说明从界面ChronoLocalDate
复制返回与该对象相同类型的对象,并减去指定的时间段。该方法返回一个基于该对象的新对象,减去指定的时间段。 例如,在
LocalDate
,这可以用来减去几年,几个月或几天。 返回的对象将具有与该对象相同的可观察类型。在某些情况下,更改字段尚未完全定义。 例如,如果目标对象是代表3月31日的日期,则减去一个月将不清楚。 在这种情况下,该领域负责解决结果。 通常,它将选择先前的有效日期,这将是本例中最后一个有效的二月份。
- Specified by:
-
minus
在接口ChronoLocalDate
- Specified by:
-
minus
在接口Temporal
- 参数
-
amountToAdd
- 减去指定单位的金额,可能为负数 -
unit
- 减去量的单位,不为空 - 结果
- 与指定周期相同类型的对象减去,不为空
-
atTime
public final ChronoLocalDateTime<ThaiBuddhistDate> atTime(LocalTime localTime)
说明从接口ChronoLocalDate
复制结合此日期与时间创建一个ChronoLocalDateTime
。这将在指定的时间从此日期返回一个
ChronoLocalDateTime
。 日期和时间的所有可能的组合都是有效的。- Specified by:
-
atTime
在接口ChronoLocalDate
- 参数
-
localTime
- 当地使用时间,不为空 - 结果
- 从该日期到指定时间形成的本地日期时间,不为空
-
until
public ChronoPeriod until(ChronoLocalDate endDate)
说明从界面ChronoLocalDate
复制将此日期与另一个日期之间的期间计算为ChronoPeriod
。这计算两个日期之间的期间。 所有提供的年表使用年,月和日计算周期,但是
ChronoPeriod
API允许使用其他单位来表示期间。起点和终点是
this
和指定的日期。 如果结束在开始之前,结果将为负数。 每年,每月的负号将相同。计算使用此日期的年表进行。 如有必要,输入日期将被转换为匹配。
此实例是不可变的,不受此方法调用的影响。
- Specified by:
-
until
在接口ChronoLocalDate
- 参数
-
endDate
- 结束日期,排他,可能在任何年代,不为空 - 结果
- 此日期与结束日期之间的期间不为空
-
toEpochDay
public long toEpochDay()
说明从接口ChronoLocalDate
复制将此日期转换为大纪元日。Epoch Day count
是第0天为1970-01-01(ISO)的简单递增计数。 这个定义对于所有的年表都是一样的,可以进行转换。此默认实现查询
EPOCH_DAY
字段。- Specified by:
-
toEpochDay
在接口ChronoLocalDate
- 结果
- 大纪元日等于这个日期
-
equals
public boolean equals(Object obj)
将此日期与其他日期进行比较,包括年表。将此
ThaiBuddhistDate
与另一个确认日期相同。只有
ThaiBuddhistDate
类型的ThaiBuddhistDate
被比较,其他类型返回false。 要比较两个TemporalAccessor
实例的日期,包括两个不同年表中的日期,请使用ChronoField.EPOCH_DAY
作为比较。- Specified by:
-
equals
在接口ChronoLocalDate
- 参数
-
obj
- 要检查的对象,null返回false - 结果
- 如果这等于其他日期,则为真
- 另请参见:
-
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
复制根据指定的单位计算直到另一个日期的时间量。这个计算两个之间的时间量
ChronoLocalDate
在单一方面对象TemporalUnit
。 起点和终点为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
,不为空 -
unit
- 衡量金额的单位,不为空 - 结果
- 此日期与结束日期之间的时间
-
toString
public String toString()
描述从类别复制:Object
返回对象的字符串表示形式。 一般来说,toString
方法返回一个字符串,“文本地表示”这个对象。 结果应该是一个简明扼要的表达,容易让人阅读。 建议所有子类覆盖此方法。该
toString
类方法Object
返回一个由类的名称,其中所述对象是其实例,该符号字符`的字符串@
”,并且对象的哈希码的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串:getClass().getName() + '@' + Integer.toHexString(hashCode())
- Specified by:
-
toString
在接口ChronoLocalDate
- 重写:
-
toString
在Object
- 结果
- 对象的字符串表示形式。
-
-