模块  java.base
软件包  java.time.temporal

Class IsoFields


  • public final class IsoFields
    extends Object
    ISO-8601日历系统特定的字段和单位,包括按季度和按周计算的年度。

    此类定义特定于ISO日历系统的字段和单位。

    一年四分之一

    ISO-8601标准基于标准的思域12个月。 这通常分为四个季度,通常缩写为Q1,Q2,Q3和Q4。

    1月,2月和3月是第一季度。 四月,五月和六月是第二季度。 七月,八月和九月是第三季度。 十月,十一月和十二月是第四季度。

    完整日期使用三个字段表示:

    基于周的年份

    ISO-8601标准最初旨在作为数据交换格式,定义日期和时间的字符串格式。 但是,它还根据基于周的年的概念定义了表达日期的另一种方式。

    日期用三个字段表示:

    基于周的年份本身是相对于标准ISO保护年定义的。 它与标准年份的不同之处在于它始终在星期一开始。

    基于一周的第一周是标准ISO年度的第一周周,在新的一年中至少有4天。

    • 如果1月1日是星期一,则第1周从1月1日开始
    • 如果1月1日是星期二,那么第1周将从上一个标准年的12月31日开始
    • 如果1月1日是星期三,那么第1周将从上一个标准年的12月30日开始
    • 如果1月1日是星期四,那么第1周将从上一个标准年的12月29日开始
    • 如果1月1日是星期五,那么第1周将从1月4日开始
    • 如果1月1日是星期六,则第1周从1月3日开始
    • 如果1月1日是星期日,则第1周从1月2日开始
    在大多数以周为基础的年份有52周,但有时有53周。

    例如:

    Examples of Week based Years Date Day-of-week Field values 2008-12-28 Sunday Week 52 of week-based-year 2008 2008-12-29 Monday Week 1 of week-based-year 2009 2008-12-31 Wednesday Week 1 of week-based-year 2009 2009-01-01 Thursday Week 1 of week-based-year 2009 2009-01-04 Sunday Week 1 of week-based-year 2009 2009-01-05 Monday Week 2 of week-based-year 2009
    实现要求:

    这个类是不可变的和线程安全的。

    从以下版本开始:
    1.8
    • 字段详细信息

      • DAY_OF_QUARTER

        public static final TemporalField DAY_OF_QUARTER
        表示季度日期的字段。

        此字段允许查询和设置季度值。 标准年度第一季度的季度值为1至90,闰年第一季度为1至91,第二季度为1至91,第三季度和第四季度为1至92。

        只有年,年,月和年可用时,才能计算季度。

        设置此字段时,允许该值部分宽松,从1到92取任何值。如果该季度少于92天,则第92天,可能是第91天,在下一季度。

        在解析的解析阶段,可以创建一年,一年和一季中的日期。

        strict mode中 ,所有三个字段都根据其有效值范围进行验证。 季度日期字段的验证范围为1到90,91或92,具体取决于年份和季度。

        smart mode中 ,所有三个字段都根据其有效值范围进行验证。 季度日期字段在1到92之间验证,忽略基于年份和季度的实际范围。 如果季度超过实际范围一天,那么结果日期是一天之后。 如果季度超过实际范围两天,那么结果日期是两天后。

        lenient mode中 ,仅针对有效值范围验证年份。 计算得出的日期相当于以下三阶段方法。 首先,在要求年份的1月1日创建日期。 然后取四分之一年,减去一个,并将该数量加到日期中。 最后,取一个季度,减去一个,然后将天数添加到日期。

        此单元是一个不可变且线程安全的单例。

      • QUARTER_OF_YEAR

        public static final TemporalField QUARTER_OF_YEAR
        代表季度的字段。

        此字段允许查询和设置四分之一的值。 四分之一的年份值为1到4。

        只有在年度可用的情况下,才能计算出季度。

        在解析的解析阶段,可以创建一年,一年和一季中的日期。 有关详细信息,请参见DAY_OF_QUARTER

        此单元是一个不可变且线程安全的单例。

      • WEEK_OF_WEEK_BASED_YEAR

        public static final TemporalField WEEK_OF_WEEK_BASED_YEAR
        代表以周为基础的年份的字段。

        此字段允许查询和设置基于周的年份值的周。 以周为基础的年份的值为1到52,如果以周为基础的年份为53周,则为53。

        在解析的解析阶段,可以从基于周的年,基于周的工作年和星期几创建日期。

        strict mode中 ,所有三个字段都根据其有效值范围进行验证。 基于星期的年度字段的验证范围为1到52或53,具体取决于基于周的年份。

        smart mode中 ,所有三个字段都根据其有效值范围进行验证。 基于周周的字段在1到53之间验证,忽略以周为基础的年份。 如果基于周周的年份为53,但基于周的年份仅为52周,那么结果日期是在下一周基于年份的第1周。

        lenient mode中 ,仅针对有效值范围验证基于周的年份。 如果星期几在1到7的范围之外,则将结果日期调整适当的周数,以将星期几减少到1到7的范围。如果是星期 - 基于年份的值超出1到52的范围,然后从结果日期中添加或减去任何多余的周数。

        此单元是一个不可变且线程安全的单例。

      • WEEK_BASED_YEAR

        public static final TemporalField WEEK_BASED_YEAR
        代表以周为基础的年份的字段。

        此字段允许查询和设置基于周的年份值。

        该字段的范围与LocalDate.MAXLocalDate.MIN匹配。

        在解析的解析阶段,可以从基于周的年,基于周的工作年和星期几创建日期。 有关详细信息,请参见WEEK_OF_WEEK_BASED_YEAR

        此单元是一个不可变且线程安全的单例。

      • WEEK_BASED_YEARS

        public static final TemporalUnit WEEK_BASED_YEARS
        表示加法和减法的基于周的年份的单位。

        这允许将一些基于周的年份添加到日期或从日期中减去。 该单位等于52或53周。 基于周的年度的估计持续时间与标准ISO年的估计持续时间为365.2425 Days

        添加规则将基于周的年数添加到基于周的年度字段的现有值。 如果由此产生的基于周的年份仅有52周,则日期将在下一周基于年的第1周。

        此单元是一个不可变且线程安全的单例。

      • QUARTER_YEARS

        public static final TemporalUnit QUARTER_YEARS
        代表四分之一年概念的单位。 对于ISO日历系统,它等于3个月。 估计的四分之一年的持续时间是365.2425 Days四分之一。

        此单元是一个不可变且线程安全的单例。