public abstract class AbstractChronology extends Object implements Chronology
主要日期和时间的数据接口是建立在标准的日历系统上的。在幕后操作,代表一个日历系统的一般概念。
更多细节见Chronology
。
Chronology
界面分离,静态方法不能被继承。而
Chronology
可以直接实现,它是强烈建议扩展这个抽象类而不是。
此类必须小心地执行,以确保其他类正确操作。所有的实现可以被实例化必须是最终的,不变的,线程安全的。子类应该是可串行化的可能。
Modifier | Constructor and Description |
---|---|
protected |
AbstractChronology()
创建一个实例。
|
Modifier and Type | Method and Description |
---|---|
int |
compareTo(Chronology other)
把这个年代与另一个年代比较。
|
boolean |
equals(Object obj)
检查这个年代是否等于另一个年代。
|
int |
hashCode()
这个年代的一个哈希代码。
|
ChronoLocalDate |
resolveDate(Map<TemporalField,Long> fieldValues, ResolverStyle resolverStyle)
解决
ChronoField 值解析到日期在解析。
|
String |
toString()
输出这个年表作为
String ,使用年表的ID。
|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
date, date, date, dateEpochDay, dateNow, dateNow, dateNow, dateYearDay, dateYearDay, eraOf, eras, from, getCalendarType, getDisplayName, getId, isLeapYear, localDateTime, period, prolepticYear, range, zonedDateTime, zonedDateTime
public ChronoLocalDate resolveDate(Map<TemporalField,Long> fieldValues, ResolverStyle resolverStyle)
ChronoField
值解析到日期在解析。
最TemporalField
实现使用解决方法在现场解决。相比之下,在ChronoField
类定义,只有相对的意义领域的年表。因此,ChronoField
日期字段的解决在特定年代的语境。
ChronoField
实例都通过这种方法解决,可以在子类中重写。
EPOCH_DAY
-如果存在的话,这是转换为日期和所有其他日期字段的日期然后对交叉检查。PROLEPTIC_MONTH
-如果存在的话,那么它是分裂成YEAR
和MONTH_OF_YEAR
。如果该模式是严格的或智能的,那么该字段是验证。YEAR_OF_ERA
和ERA
-如果存在,那么它们组合起来形成一个YEAR
。在宽松的模式,YEAR_OF_ERA
范围没有验证,在智能和严格的方式是。验证范围内的所有三种模式的ERA
是。如果只有YEAR_OF_ERA
在场,和模式是聪明的还是宽松的,然后最后一个时代是假设。在严格的模式,没有时代的假设和YEAR_OF_ERA
是原封不动。如果只有ERA
是存在的,那么它是原封不动。YEAR
,MONTH_OF_YEAR
和DAY_OF_MONTH
-如果三存在,那么它们组合成一个日期。在所有三种模式,这YEAR
验证。如果模式是智能或严格的,那么这个月和一天都是有效的。如果该模式是宽松的,那么日期是相结合的方式相当于创建一个日期在第一天的第一天,在要求的一年,然后添加几个月的差异,然后在天的差异。如果模式是聪明的,一个月的一天比一年的月最高,然后一个月的一天调整到一个月的最后一天。如果模式是严格的,那么三个字段必须形成一个有效的日期。YEAR
和DAY_OF_YEAR
-如果存在,那么它们组合成一个日期。在所有三种模式,这YEAR
验证。如果模式是宽松的,那么日期以相当于创建日期的第一天的方式相结合,然后添加在天的差异。如果模式是聪明的或严格的,那么这两个字段必须形成一个有效的日期。YEAR
,MONTH_OF_YEAR
,ALIGNED_WEEK_OF_MONTH
和ALIGNED_DAY_OF_WEEK_IN_MONTH
-如果四存在,那么它们组合成一个日期。在所有三种模式,这YEAR
验证。如果该模式是宽松的,那么日期相结合的方式相当于创建一个日期在第一天的第一天,在要求的一年,然后增加了几个月的差异,然后在几周内的差异,然后在天。如果该模式是智能或严格的,那么所有的四个字段进行了验证,他们的外部范围。日期然后以一种相当于要求的一年和一个月的第一天的日期创建日期,然后在几周和几天内添加量达到他们的价值。如果模式是严格的,还验证了日期,以检查一天和一周的调整并没有改变月份。YEAR
,MONTH_OF_YEAR
,ALIGNED_WEEK_OF_MONTH
和DAY_OF_WEEK
-如果四存在,那么它们组合成一个日期。该方法是按上述年一样,在ALIGNED_DAY_OF_WEEK_IN_MONTH
月份和星期。每周一次的一天调整为下一个或相同的一周,几年,几个月和几周的时间已被处理。YEAR
,ALIGNED_WEEK_OF_YEAR
和ALIGNED_DAY_OF_WEEK_IN_YEAR
-如果三存在,那么它们组合成一个日期。在所有三种模式,这YEAR
验证。如果该模式是宽松的,那么日期是相结合的方式相当于创建一个日期的第一天,所要求的一年,然后添加在几周内的差异,然后在天。如果该模式是智能或严格的,那么所有的三个字段进行了验证,他们的外部范围。日期然后以相当于在请求的一年的第一天创建日期,然后在几周和几天内添加量达到他们的值。如果模式是严格的,还验证了日期,以检查一天和一周的调整并没有改变一年。YEAR
,ALIGNED_WEEK_OF_YEAR
和DAY_OF_WEEK
-如果三存在,那么它们组合成一个日期。方法如上所述,在ALIGNED_DAY_OF_WEEK_IN_YEAR
年周相同。每周一次的一天调整为下一个或同一个星期一次的一周,几周和几周已经处理好了。默认实现是适用于大多数日历系统。如果ChronoField.YEAR_OF_ERA
发现没有ChronoField.ERA
然后在Chronology.eras()
过去时代用。执行假设一个7天的一周,即每月的第一天有价值1,第一天的一年有价值1,而第一个月和一年总是存在。
resolveDate
接口
Chronology
fieldValues
-字段值的Map,可以更新,不为空
resolverStyle
-解决请求的类型,不为空
DateTimeException
如果日期不能解决,通常是因为在输入数据冲突
public int compareTo(Chronology other)
先按顺序先按顺序的顺序进行比较,然后通过特定的子类的任何附加信息。这是“等于”一致,所定义的Comparable
。
compareTo
接口
Comparable<Chronology>
compareTo
接口
Chronology
other
-相比其他年表,不空
public boolean equals(Object obj)
比较是基于对象的整个状态。
equals
接口
Chronology
equals
方法重写,继承类
Object
compareTo(java.time.chrono.Chronology)
。
obj
-检查对象,空返回false
Object.hashCode()
,
HashMap
public int hashCode()
哈希代码应该基于对象的整个状态。
hashCode
接口
Chronology
hashCode
方法重写,继承类
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public String toString()
String
,使用年表的ID。
toString
接口
Chronology
toString
方法重写,继承类
Object
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.