public final class ThaiBuddhistDate extends Object implements ChronoLocalDate, Serializable
此日期使用Thai Buddhist calendar操作。 这个日历系统主要用于泰国。 日期是对齐的,使得2484-01-01 (Buddhist)
是1941-01-01 (ISO)
。
这是一个value-based类; 使用身份敏感的操作(包括引用相等(的==
上的实例),标识哈希码,或同步) ThaiBuddhistDate
可具有不可预测的结果,应当避免。 equals
方法应用于比较。
Modifier and Type | Method and Description |
---|---|
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()
返回对象的字符串表示形式。
|
ChronoPeriod |
until(ChronoLocalDate endDate)
将此日期和另一个日期之间的期间计算为
ChronoPeriod 。
|
long |
until(Temporal endExclusive, TemporalUnit unit)
根据指定的单位计算直到另一个日期的时间量。
|
ThaiBuddhistDate |
with(TemporalAdjuster adjuster)
通过进行调整,返回与该对象相同类型的调整对象。
|
ThaiBuddhistDate |
with(TemporalField field, long newValue)
返回与该对象具有相同类型的对象,并更改指定的字段。
|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
adjustInto, compareTo, format, isAfter, isBefore, isEqual, isLeapYear, isSupported, isSupported, lengthOfYear, query, timeLineOrder, toString, until
get
public static ThaiBuddhistDate now()
public static ThaiBuddhistDate now(ZoneId zone)
ThaiBuddhistDate
。
这将查询system clock
获取当前日期。 指定时区可以避免对默认时区的依赖。
使用此方法将阻止使用备用时钟进行测试,因为时钟是硬编码的。
zone
- 要使用的区域ID,不为空
public static ThaiBuddhistDate now(Clock clock)
ThaiBuddhistDate
从指定的时钟。
这将查询指定的时钟以获取当前日期 - 今天。 使用此方法可以使用备用时钟进行测试。 替代时钟可以使用dependency injection引入 。
clock
- 要使用的时钟,不为空
DateTimeException
- 如果当前日期无法获取
public static ThaiBuddhistDate of(int prolepticYear, int month, int dayOfMonth)
ThaiBuddhistDate
,代表泰国佛教日历系统中的日期,月份和月份字段的日期。
这将返回一个ThaiBuddhistDate
与指定的字段。 该日期必须在年和月中有效,否则将抛出异常。
prolepticYear
- 泰国佛教精神病年
month
- 泰国佛教月份,从1到12
dayOfMonth
- 泰国佛教徒的日子,从1到31
DateTimeException
- 如果任何字段的值超出范围,或者如果月的日期对于月份无效
public static ThaiBuddhistDate from(TemporalAccessor temporal)
ThaiBuddhistDate
。
这在泰国佛教日历系统中基于指定的时间获取日期。 A TemporalAccessor
代表日期和时间信息的任意集合,该工厂转换为ThaiBuddhistDate
一个实例。
转换通常使用EPOCH_DAY
字段,这是跨日历系统标准化的。
该方法中,功能接口的签名相匹配TemporalQuery
允许它被用作通过方法参考,查询ThaiBuddhistDate::from
。
from
在接口
ChronoLocalDate
temporal
- 要转换的时间对象,不为null
DateTimeException
- 如果无法转换为
ThaiBuddhistDate
Chronology.date(TemporalAccessor)
public ThaiBuddhistChronology getChronology()
Chronology
表示正在使用的日历系统。 ChronoField
中的时代和其他领域由年表定义。
getChronology
在接口
ChronoLocalDate
public ThaiBuddhistEra getEra()
泰国佛教日历系统有两个时代:“BE”和“BEFORE_BE”,由ThaiBuddhistEra
定义。
getEra
在界面
ChronoLocalDate
public int lengthOfMonth()
这将以天为单位返回月份的长度。 月份长度与ISO日历系统相匹配。
lengthOfMonth
在界面
ChronoLocalDate
public ValueRange range(TemporalField field)
TemporalAccessor
复制
所有字段可以表示为long
整数。 此方法返回描述该值的有效范围的对象。 该时间对象的值用于提高返回范围的精度。 如果日期时间无法返回范围,因为该字段不受支持或由于其他原因,将抛出异常。
请注意,结果仅描述最小和最大有效值,重要的是不要太多读取它们。 例如,可以在该范围内的值对该字段无效。
range
在界面
TemporalAccessor
field
- 查询范围的字段,不为null
public long getLong(TemporalField field)
TemporalAccessor
复制
long
。
这将查询指定字段的值的日期时间。 返回的值可能在该字段的值的有效范围之外。 如果日期时间不能返回值,因为该字段不受支持或由于其他原因,将抛出异常。
getLong
在界面
TemporalAccessor
field
- 要获取的字段,不为null
public ThaiBuddhistDate with(TemporalField field, long newValue)
ChronoLocalDate
复制
这将返回一个基于该对象的新对象,其中指定字段的值已更改。 例如,在LocalDate
,这可以用于设置年,月或月。 返回的对象将具有与该对象相同的可观察类型。
在某些情况下,更改字段尚未完全定义。 例如,如果目标对象是代表1月31日的日期,则将月份更改为2月份将不清楚。 在这种情况下,该领域负责解决结果。 通常,它将选择先前的有效日期,这将是本例中最后一个有效的二月份。
with
在接口
ChronoLocalDate
with
在接口
Temporal
field
- 要在结果中设置的字段,不为null
newValue
- 结果中字段的新值
public ThaiBuddhistDate with(TemporalAdjuster adjuster)
这将根据指定的调整器的规则调整此日期时间。 一个简单的调整器可能只是设置一个字段,如年份字段。 更复杂的调整器可能会将日期设置为该月的最后一天。 TemporalAdjuster
提供了一些常见的调整 。 这些包括找到“月的最后一天”和“下周三”。 调整员负责处理特殊情况,如月份和闰年的不同长度。
一些示例代码,指示如何和为什么使用此方法:
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
with
在界面
ChronoLocalDate
with
在界面
Temporal
adjuster
- 调整器使用,不为空
DateTimeException
- 如果不能进行调整
ArithmeticException
- 如果发生数字溢出
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
不保证返回相同的日期时间。
plus
在接口
ChronoLocalDate
plus
在接口
Temporal
amount
- 要添加的金额,不为null
DateTimeException
- 如果不能添加
ArithmeticException
- 如果发生数字溢出
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
不保证返回相同的日期时间。
minus
在接口
ChronoLocalDate
minus
在界面
Temporal
amount
- 减去量,不为空
DateTimeException
- 如果不能进行减法
ArithmeticException
- 如果发生数字溢出
public ThaiBuddhistDate plus(long amountToAdd, TemporalUnit unit)
ChronoLocalDate
复制
此方法基于添加了指定句点的新对象。 例如,在LocalDate
,这可以用来添加几年,几个月或几天。 返回的对象将具有与该对象相同的可观察类型。
在某些情况下,更改字段尚未完全定义。 例如,如果目标对象是代表1月31日的日期,则添加一个月将不清楚。 在这种情况下,该领域负责解决结果。 通常,它将选择先前的有效日期,这将是本例中最后一个有效的二月份。
plus
在界面
ChronoLocalDate
plus
在界面
Temporal
amountToAdd
- 要添加的指定单位的数量,可能为负数
unit
- 要添加的单位,不为空
public ThaiBuddhistDate minus(long amountToAdd, TemporalUnit unit)
ChronoLocalDate
复制
该方法返回一个基于该对象的新对象,减去指定的时间段。 例如,在LocalDate
,这可以用来减去几年,几个月或几天。 返回的对象将具有与该对象相同的可观察类型。
在某些情况下,更改字段尚未完全定义。 例如,如果目标对象是代表3月31日的日期,则减去一个月将不清楚。 在这种情况下,该领域负责解决结果。 通常,它将选择先前的有效日期,这将是本例中最后一个有效的二月份。
minus
在接口
ChronoLocalDate
minus
在界面
Temporal
amountToAdd
- 减去指定单位的数量,可能为负数
unit
- 扣除期间的单位,不为空
public final ChronoLocalDateTime<ThaiBuddhistDate> atTime(LocalTime localTime)
ChronoLocalDate
复制
ChronoLocalDateTime
。
这将返回一个ChronoLocalDateTime
从该日起在指定的时间形成的。 日期和时间的所有可能的组合都是有效的。
atTime
在接口
ChronoLocalDate
localTime
- 当地使用时间,不为空
public ChronoPeriod until(ChronoLocalDate endDate)
ChronoLocalDate
复制
ChronoPeriod
。
这计算两个日期之间的期间。 所有提供的年表使用年,月和日计算周期,但是ChronoPeriod
API允许使用其他单位来表示期间。
起点和终点是this
和指定的日期。 如果结束在开始之前,结果将为负数。 每年,每月的负号将相同。
计算使用此日期的年表进行。 如有必要,输入日期将被转换为匹配。
此实例是不可变的,不受此方法调用的影响。
until
在界面
ChronoLocalDate
endDate
- 结束日期,排他,可能在任何年代,不为空
public long toEpochDay()
ChronoLocalDate
复制
Epoch Day count
是第0天为1970-01-01(ISO)的简单递增计数。 这个定义对于所有的年表都是一样的,可以进行转换。
此默认实现查询EPOCH_DAY
字段。
toEpochDay
在接口
ChronoLocalDate
public boolean equals(Object obj)
比较这个ThaiBuddhistDate
与另一个确保日期是一样的。
只比较类型为ThaiBuddhistDate
对象,其他类型返回false。 要比较两个TemporalAccessor
实例的日期,包括两个TemporalAccessor
年表中的日期,请使用ChronoField.EPOCH_DAY
作为比较。
equals
在界面
ChronoLocalDate
obj
- 要检查的对象,null返回false
Object.hashCode()
, HashMap
public int hashCode()
hashCode
在接口
ChronoLocalDate
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public long until(Temporal endExclusive, TemporalUnit unit)
ChronoLocalDate
复制
这样就可以使用单个TemporalUnit
来计算两个ChronoLocalDate
对象之间的时间量。 起点和终点是this
和指定的日期。 如果结束在开始之前,结果将为负数。 所述Temporal
传递给此方法被转换为ChronoLocalDate
使用Chronology.date(TemporalAccessor)
。 计算返回一个整数,表示两个日期之间的完整单位数。 例如,可以使用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
作为第一个参数和转换后的输入时间作为第二个参数。
此实例是不可变的,不受此方法调用的影响。
until
在界面
ChronoLocalDate
until
在界面
Temporal
endExclusive
-结束日期,排他的,其被转换为
ChronoLocalDate
在相同的时间顺序,而不是空
unit
- 衡量金额的单位,不为空
public String toString()
Object
复制
toString
方法返回一个“textually代表”这个对象的字符串。
结果应该是一个简明扼要的表达,容易让人阅读。
建议所有子类覆盖此方法。
该toString
类方法Object
返回一个由其中的对象是一个实例,该符号字符`的类的名称的字符串@
”和对象的哈希码的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串:
getClass().getName() + '@' + Integer.toHexString(hashCode())
toString
在界面
ChronoLocalDate
toString
在
Object