- java.lang.Object
-
- java.time.temporal.IsoFields
-
public final class IsoFields extends Object
特定于ISO-8601日历系统的领域和单位,包括季度和周年。该类定义了特定于ISO日历系统的字段和单位。
一年的一年
ISO-8601标准是基于标准市民12个月的年份。 这通常分为四个季度,通常缩写为Q1,Q2,Q3和Q4。1月,2月和3月在第一季度。 四月,五月和六月是第二季度。 7月,8月和9月在第3季度。 十月,十一月和十二月在第四季度。
完整的日期用三个字段表示:
-
DAY_OF_QUARTER
- 四分之一的日子,从1到90,91或92 -
QUARTER_OF_YEAR
- 一年内的季度,从1到4 -
YEAR
- 标准ISO年
以周为基础的年
ISO-8601标准最初是作为数据交换格式,定义日期和时间的字符串格式。 然而,它也定义了基于周年概念的替代方式来表达日期。日期用三个字段表示:
-
DAY_OF_WEEK
- 从星期一(1)到星期日(7)定义星期几的标准字段 -
WEEK_OF_WEEK_BASED_YEAR
- 周内的一周 -
WEEK_BASED_YEAR
- 周年
每周一周的第一周是标准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日开始
例如:
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
-
-
-
Field Summary
Fields Modifier and Type Field 描述 static TemporalField
DAY_OF_QUARTER
代表季度的领域。static TemporalField
QUARTER_OF_YEAR
代表季度的领域。static TemporalUnit
QUARTER_YEARS
代表四分之一年概念的单位。static TemporalField
WEEK_BASED_YEAR
代表周年的领域。static TemporalUnit
WEEK_BASED_YEARS
以加法和减法为目的的以星期为单位的单位。static TemporalField
WEEK_OF_WEEK_BASED_YEAR
代表周周的一年的领域。
-
-
-
字段详细信息
-
DAY_OF_QUARTER
public static final TemporalField DAY_OF_QUARTER
代表季度的领域。该字段允许查询和设置第四季度的值。 一季度第一季度的价值从1到90,从闰年第一季度的1降到91,第2季度从1升至91,第3季度和第4季度从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.MAX
和LocalDate.MIN
。在解析的解决阶段,可以从基于周的年份,周周的年份和星期几创建日期。 详见
WEEK_OF_WEEK_BASED_YEAR
。这个单位是一个不可变的和线程安全的单身人士。
-
WEEK_BASED_YEARS
public static final TemporalUnit WEEK_BASED_YEARS
以加法和减法为目的的以星期为单位的单位。这允许将一些以周为基础的年数添加到日期或从日期中减去。 该单位等于52或53周。 一周的估计持续时间与
365.2425 Days
的标准ISO年度365.2425 Days
。添加规则将以周为基数的年数添加到基于周的年份字段的现有值。 如果由此产生的周年只有52周,那么日期将在下一周的第1周。
这个单位是一个不可变的和线程安全的单身人士。
-
QUARTER_YEARS
public static final TemporalUnit QUARTER_YEARS
代表四分之一年概念的单位。 对于ISO日历系统,它等于3个月。 四分之一年的估计时间是365.2425 Days
四分之一。这个单位是一个不可变的和线程安全的单身人士。
-
-