- java.lang.Object
-
- java.time.chrono.AbstractChronology
-
- 实现的所有接口
-
Comparable<Chronology>
,Chronology
- 已知直接子类:
-
HijrahChronology
,IsoChronology
,JapaneseChronology
,MinguoChronology
,ThaiBuddhistChronology
public abstract class AbstractChronology extends Object implements Chronology
- 实现要求:
-
此类与
Chronology
接口分离,因此不会继承静态方法。 虽然可以直接实现Chronology
,但强烈建议扩展此抽象类。必须小心实现此类,以确保其他类正常运行。 可以实例化的所有实现必须是最终的,不可变的和线程安全的。 只要有可能,子类应该是Serializable。
- 从以下版本开始:
- 1.8
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
AbstractChronology()
创建一个实例。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 int
compareTo(Chronology other)
将这个年代表与另一个年表进行比较。boolean
equals(Object obj)
检查这个年表是否等于另一个年表。int
hashCode()
此年表的哈希码。ChronoLocalDate
resolveDate(Map<TemporalField,Long> fieldValues, ResolverStyle resolverStyle)
解析在解析期间将ChronoField
值解析为日期。String
toString()
使用年表ID将此年表输出为String
。-
声明方法的接口 java.time.chrono.Chronology
date, date, date, dateEpochDay, dateNow, dateNow, dateNow, dateYearDay, dateYearDay, epochSecond, epochSecond, eraOf, eras, getCalendarType, getDisplayName, getId, isLeapYear, localDateTime, period, prolepticYear, range, zonedDateTime, zonedDateTime
-
-
-
-
方法详细信息
-
resolveDate
public ChronoLocalDate resolveDate(Map<TemporalField,Long> fieldValues, ResolverStyle resolverStyle)
解析在解析期间将ChronoField
值解析为日期。使用场上的resolve方法解析大多数
TemporalField
实现。 相比之下,ChronoField
类定义的字段仅具有相对于年表的含义。 因此,此处在特定年表的上下文中解析了ChronoField
日期字段。通过此方法解析
ChronoField
实例,可以在子类中重写这些实例。-
EPOCH_DAY
- 如果存在,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
年,月和周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
数年ALIGNED_DAY_OF_WEEK_IN_YEAR
周ALIGNED_DAY_OF_WEEK_IN_YEAR
。 一旦处理了年份和周数,将星期几调整为下一个或相同的匹配日。
默认实现适用于大多数日历系统。 如果
ChronoField.YEAR_OF_ERA
是没有发现ChronoField.ERA
然后在最后的时代Chronology.eras()
使用。 实施假定每周工作7天,第一天的值为1,第一天的值为1,并且月份和年份的第一天始终存在。- Specified by:
-
resolveDate
在界面Chronology
- 参数
-
fieldValues
- 值的字段映射,可以更新,而不是null -
resolverStyle
- 请求的解析类型,不为null - 结果
- 已解决的日期,如果创建日期的信息不足,则为null
- 异常
-
DateTimeException
- 如果无法解析日期,通常是因为输入数据存在冲突
-
-
compareTo
public int compareTo(Chronology other)
将这个年代表与另一个年表进行比较。比较顺序首先由年表ID字符串,然后由特定于子类的任何附加信息。 它与“等于”一致,如
Comparable
所定义。- Specified by:
-
compareTo
,界面Chronology
- Specified by:
-
compareTo
接口Comparable<Chronology>
- 实现要求:
- 此实现比较了时间顺序ID。 子类必须比较它们存储的任何其他状态。
- 参数
-
other
- 要比较的其他年表,不是null - 结果
- 比较器值,如果更小则为负,如果更大则为正
-
equals
public boolean equals(Object obj)
检查这个年表是否等于另一个年表。比较基于对象的整个状态。
- Specified by:
-
equals
接口Chronology
- 重写:
-
equals
在课程Object
- 实现要求:
-
此实现检查类型并调用
compareTo(java.time.chrono.Chronology)
。 - 参数
-
obj
- 要检查的对象,null返回false - 结果
- 如果这等于其他年表,则为true
- 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
此年表的哈希码。哈希码应该基于对象的整个状态。
- Specified by:
-
hashCode
接口Chronology
- 重写:
-
hashCode
在课程Object
- 实现要求:
- 此实现基于时间顺序ID和类。 子类应添加它们存储的任何其他状态。
- 结果
- 合适的哈希码
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
toString
public String toString()
使用年表ID将此年表输出为String
。- Specified by:
-
toString
在界面Chronology
- 重写:
-
toString
在课程Object
- 结果
- 此年表的字符串表示形式,不为null
-
-