- java.lang.Object
-
- java.time.chrono.AbstractChronology
-
- java.time.chrono.JapaneseChronology
-
- All Implemented Interfaces:
-
Serializable,Comparable<Chronology>,Chronology
public final class JapaneseChronology extends AbstractChronology implements Serializable
日本帝国历法系统。这个年表定义了日本帝国历法系统的规则。 这个日历系统主要在日本使用。 日系帝国日历系统与日历系统相同,除了基于时代的年份编号。
日本介绍了从明治6开始的公历。只有明治和以后的时代得到支持; 1月1日明治6日之前的日期不受支持。
支持的
ChronoField实例是:-
DAY_OF_WEEK -
DAY_OF_MONTH -
DAY_OF_YEAR -
EPOCH_DAY -
MONTH_OF_YEAR -
PROLEPTIC_MONTH -
YEAR_OF_ERA -
YEAR -
ERA
- 实现要求:
- 这个类是不可变的和线程安全的。
- 从以下版本开始:
- 1.8
- 另请参见:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field 描述 static JapaneseChronologyINSTANCE日本年代的单身人士例子。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 JapaneseDatedate(int prolepticYear, int month, int dayOfMonth)从日光年,月 - 日和日月份获取日本日历系统的当地日期。JapaneseDatedate(Era era, int yearOfEra, int month, int dayOfMonth)从日期,时代,月份和月份的时代,获取日本日历系统中的当地日期。JapaneseDatedate(TemporalAccessor temporal)从另一个时间对象获取本年龄的本地日期。JapaneseDatedateEpochDay(long epochDay)在日历日历系统中从当天获取本地日期。JapaneseDatedateNow()从默认时区的系统时钟获取此时间顺序中的当前本地日期。JapaneseDatedateNow(Clock clock)从指定的时钟获取本年龄的当前本地日期。JapaneseDatedateNow(ZoneId zone)从指定时区的系统时钟获取此时间顺序中的当前本地日期。JapaneseDatedateYearDay(int prolepticYear, int dayOfYear)从日光年和日期字段获取日语日历系统中的当地日期。JapaneseDatedateYearDay(Era era, int yearOfEra, int dayOfYear)从时代,年龄和日期领域获取日本日历系统中的当地日期。JapaneseEraeraOf(int eraValue)从给定的数值返回日历系统时代对象。List<Era>eras()获取年表的时间列表。StringgetCalendarType()获取基础日历系统的日历类型 - “日语”。StringgetId()获取年表的ID - “日语”。booleanisLeapYear(long prolepticYear)检查指定年份是否是闰年。ChronoLocalDateTime<JapaneseDate>localDateTime(TemporalAccessor temporal)从另一个时间对象获取本年龄的本地日期时间。intprolepticYear(Era era, int yearOfEra)计算年龄和年龄的幼年时期。ValueRangerange(ChronoField field)获取指定字段的有效值的范围。JapaneseDateresolveDate(Map<TemporalField,Long> fieldValues, ResolverStyle resolverStyle)解析解析中的ChronoField值到一个日期。ChronoZonedDateTime<JapaneseDate>zonedDateTime(Instant instant, ZoneId zone)获得ChronoZonedDateTime在从这个年表Instant。ChronoZonedDateTime<JapaneseDate>zonedDateTime(TemporalAccessor temporal)从另一个时间对象获得这个年龄的ChronoZonedDateTime。-
Methods inherited from class java.time.chrono.AbstractChronology
compareTo, equals, hashCode, toString
-
Methods inherited from interface java.time.chrono.Chronology
epochSecond, epochSecond, from, getDisplayName, period
-
-
-
-
字段详细信息
-
INSTANCE
public static final JapaneseChronology INSTANCE
日本年代的单身人士例子。
-
-
方法详细信息
-
getId
public String getId()
获取年表的ID - “日语”。该ID唯一标识了
Chronology。 它可以用于查找Chronology使用Chronology.of(String)。- Specified by:
-
getId在接口Chronology - 结果
- 年表ID - “日语”
- 另请参见:
-
getCalendarType()
-
getCalendarType
public String getCalendarType()
获取基础日历系统的日历类型 - “日语”。日历类型是由Unicode区域设置数据标记语言(LDML)规范定义的标识符。 它可以用于查找
Chronology使用Chronology.of(String)。 它也可以作为语言环境的一部分使用,通过Locale.getUnicodeLocaleType(String)可以使用键'ca'。- Specified by:
-
getCalendarType在接口Chronology - 结果
- 日历系统类型 - 'japanese'
- 另请参见:
-
getId()
-
date
public JapaneseDate date(Era era, int yearOfEra, int month, int dayOfMonth)
从日期,时代,月份和月份的时代,获取日本日历系统中的当地日期。日历月份和日期与ISO日历系统中的日期和日期相同。 当时代发生变化时,它们不会重置。 例如:
6th Jan Showa 64 = ISO 1989-01-06 7th Jan Showa 64 = ISO 1989-01-07 8th Jan Heisei 1 = ISO 1989-01-08 9th Jan Heisei 1 = ISO 1989-01-09- Specified by:
-
date在接口Chronology - 参数
-
era- 日本时代,不为空 -
yearOfEra- 年代 -
month- 年月 -
dayOfMonth- 月的日子 - 结果
- 日本本地日期,不为空
- 异常
-
DateTimeException- 如果无法创建日期 -
ClassCastException- 如果era不是JapaneseEra
-
date
public JapaneseDate date(int prolepticYear, int month, int dayOfMonth)
从日光年,月 - 日和日月份获取日本日历系统的当地日期。日本的摄像年份,月份和日期与ISO日历系统中的相同。 当时代发生变化时,它们不会重置。
- Specified by:
-
date在接口Chronology - 参数
-
prolepticYear-prolepticYear年 -
month- 年月 -
dayOfMonth- 月的日子 - 结果
- 日本本地日期,不为空
- 异常
-
DateTimeException- 如果无法创建日期
-
dateYearDay
public JapaneseDate dateYearDay(Era era, int yearOfEra, int dayOfYear)
从时代,年龄和日期领域获取日本日历系统中的当地日期。这个工厂的日期是相对于时代的开始而言的。 这个定义只是在年龄由于时代的变化而重新设定为一年的那些时代,才改变了日常的正常意义。 例如:
6th Jan Showa 64 = day-of-year 6 7th Jan Showa 64 = day-of-year 7 8th Jan Heisei 1 = day-of-year 1 9th Jan Heisei 1 = day-of-year 2- Specified by:
-
dateYearDay在接口Chronology - 参数
-
era- 日本时代,不为空 -
yearOfEra- 年代 -
dayOfYear- 一年的一天 - 结果
- 日本本地日期,不为空
- 异常
-
DateTimeException- 如果无法创建日期 -
ClassCastException- 如果era不是JapaneseEra
-
dateYearDay
public JapaneseDate dateYearDay(int prolepticYear, int dayOfYear)
从日光年和日期字段获取日语日历系统中的当地日期。这个工厂的日期是相对于开胃的一年表示的。 日本的摄像年和日期与ISO日历系统相同。 当时代发生变化时,它们不会重置。
- Specified by:
-
dateYearDay在接口Chronology - 参数
-
prolepticYear-prolepticYear年 -
dayOfYear- 年的日子 - 结果
- 日本本地日期,不为空
- 异常
-
DateTimeException- 如果无法创建日期
-
dateEpochDay
public JapaneseDate dateEpochDay(long epochDay)
在日历日历系统中从当天获取本地日期。- Specified by:
-
dateEpochDay在接口Chronology - 参数
-
epochDay- 纪元日 - 结果
- 日本本地日期,不为空
- 异常
-
DateTimeException- 如果无法创建日期
-
dateNow
public JapaneseDate dateNow()
描述从界面Chronology复制- Specified by:
-
dateNow在接口Chronology - 结果
- 当前本地日期使用系统时钟和默认时区,不为空
-
dateNow
public JapaneseDate dateNow(ZoneId zone)
描述从接口Chronology复制- Specified by:
-
dateNow在接口Chronology - 参数
-
zone- 要使用的区域ID,不为空 - 结果
- 当前本地日期使用系统时钟,不为null
-
dateNow
public JapaneseDate dateNow(Clock clock)
描述从接口Chronology复制从指定的时钟获取本年龄的当前本地日期。这将查询指定的时钟以获取当前日期 - 今天。 使用此方法可以使用备用时钟进行测试。 备用时钟可以使用
dependency injection引入。- Specified by:
-
dateNow在接口Chronology - 参数
-
clock- 要使用的时钟,不为空 - 结果
- 当前本地日期,不为null
-
date
public JapaneseDate date(TemporalAccessor temporal)
描述从接口Chronology复制从另一个时间对象获取本年龄的本地日期。这在这个时间表中基于指定的时间获得日期。 A
TemporalAccessor表示一个任意的日期和时间信息集,该工厂转换为ChronoLocalDate一个实例。转换通常使用
EPOCH_DAY字段,该字段在日历系统之间进行标准化。该方法匹配功能界面
TemporalQuery的签名,允许其通过方法参考aChronology::date用作查询。- Specified by:
-
date在接口Chronology - 参数
-
temporal- 要转换的时间对象,不为null - 结果
- 这个年代的本地日期,不为空
- 另请参见:
-
ChronoLocalDate.from(TemporalAccessor)
-
localDateTime
public ChronoLocalDateTime<JapaneseDate> localDateTime(TemporalAccessor temporal)
描述从接口Chronology复制从另一个时间对象获取本年龄的本地日期时间。这在这个时间表中基于指定的时间获得日期时间。 A
TemporalAccessor表示日期和时间信息的任意集合,该工厂将转换为ChronoLocalDateTime的实例。转换提取并从时间对象中组合
ChronoLocalDate和LocalTime。 允许实现执行优化,例如访问与相关对象相当的那些字段。 结果使用这个年表。该方法匹配功能界面
TemporalQuery的签名,允许它通过方法参考aChronology::localDateTime用作查询。- Specified by:
-
localDateTime在接口Chronology - 参数
-
temporal- 要转换的时间对象,不为null - 结果
- 在这个年代的本地日期时间,不为空
- 另请参见:
-
ChronoLocalDateTime.from(TemporalAccessor)
-
zonedDateTime
public ChronoZonedDateTime<JapaneseDate> zonedDateTime(TemporalAccessor temporal)
说明从界面Chronology复制从另一个时间对象获得这个时间顺序的ChronoZonedDateTime。根据指定的时间,在这个年表中获得一个分区的日期时间。 A
TemporalAccessor表示一个任意的日期和时间信息,这个工厂转换为ChronoZonedDateTime一个实例。转换将首先从时间对象获取一个
ZoneId,如有必要,可以回到ZoneOffset。 然后会尝试获得一个Instant,如果需要的话可以回到一个ChronoLocalDateTime。 结果将是ZoneId或ZoneOffset与Instant或ChronoLocalDateTime。 允许实现执行优化,例如访问与相关对象相当的那些字段。 结果使用这个年表。该方法匹配功能接口
TemporalQuery的签名,允许其通过方法参考aChronology::zonedDateTime用作查询。- Specified by:
-
zonedDateTime在接口Chronology - 参数
-
temporal- 要转换的时间对象,不为null - 结果
- 在这个年代的分区日期 - 时间,不为空
- 另请参见:
-
ChronoZonedDateTime.from(TemporalAccessor)
-
zonedDateTime
public ChronoZonedDateTime<JapaneseDate> zonedDateTime(Instant instant, ZoneId zone)
说明从界面Chronology复制获得ChronoZonedDateTime在从这个年表Instant。这将获得与指定的相同时间的分区日期时间。
- Specified by:
-
zonedDateTime在接口Chronology - 参数
-
instant- 即时创建日期时间,不为null -
zone- 时区,不为空 - 结果
- 划分的日期时间,不为空
-
isLeapYear
public boolean isLeapYear(long prolepticYear)
检查指定年份是否是闰年。日历闰年与ISO闰年完全一致。 该方法不能验证所传递的年份,并且在支持的范围内只有明确的结果多年。
- Specified by:
-
isLeapYear在接口Chronology - 参数
-
prolepticYear- 检查年份,无法验证范围 - 结果
- 如果这一年是闰年,那么真的
-
prolepticYear
public int prolepticYear(Era era, int yearOfEra)
说明从界面Chronology复制计算年龄和年龄的幼年时期。这将时代与时代融为一体的年轻一代。
如果年表积极使用时代,例如
JapaneseChronology那么那个时代的年代就会在这个时代得到验证。 对于其他年表,验证是可选的。- Specified by:
-
prolepticYear在接口Chronology - 参数
-
era- 时代的正确类型为年表,不为空 -
yearOfEra- 年代的年代 - 结果
- 幼稚的一年
-
eraOf
public JapaneseEra eraOf(int eraValue)
从给定的数值返回日历系统时代对象。 看到每个时代的描述为的数值:JapaneseEra.HEISEI,JapaneseEra.SHOWA,JapaneseEra.TAISHO,JapaneseEra.MEIJI),仅明治和以后的时代的支持。- Specified by:
-
eraOf在接口Chronology - 参数
-
eraValue- 时代价值 - 结果
-
日语
Era为给定的数字时代价值 - 异常
-
DateTimeException- 如果eraValue无效
-
eras
public List<Era> eras()
说明从接口Chronology复制获取年表的时间列表。大多数日历系统都有一个时代,其中一年有意义。 如果日历系统不支持时间的概念,则必须返回空列表。
- Specified by:
-
eras在接口Chronology - 结果
- 时间表的时代列表可能是不可变的,不为零
-
range
public ValueRange range(ChronoField field)
说明从界面Chronology复制获取指定字段的有效值的范围。所有字段可以表示为
long整数。 此方法返回描述该值的有效范围的对象。请注意,结果仅描述最小和最大有效值,重要的是不要太多读取它们。 例如,可以在该范围内的值对该字段无效。
无论年表是否支持该字段,此方法将返回结果。
- Specified by:
-
range在接口Chronology - 参数
-
field- 获取范围的字段,不为null - 结果
- 字段的有效值的范围不为null
-
resolveDate
public JapaneseDate resolveDate(Map<TemporalField,Long> fieldValues, ResolverStyle resolverStyle)
描述从类别复制AbstractChronology解析解析中的日期为ChronoField。大多数
TemporalField实现使用该字段上的resolve方法来解析。 相比之下,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周在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,并且月份和年份的第一个始终存在。- Specified by:
-
resolveDate在接口Chronology - 重写:
-
resolveDate在AbstractChronology - 参数
-
fieldValues- 可以更新的值的字段映射,不为null -
resolverStyle- 请求的解析类型,不为null - 结果
- the resolved date, null if insufficient information to create a date
-
-
-