此类定义特定于 ISO 日历系统的字段和单位。
季度
ISO-8601 标准基于标准公民 12 个月年。这通常分为四个季度,通常缩写为 Q1、Q2、Q3 和 Q4。一月、二月和三月在第一季度。四月、五月和六月在第二季度。七月、八月和九月在第三季度。 10 月、11 月和 12 月在第 4 季度。
完整日期使用三个字段表示:
DAY_OF_QUARTER- 季度内的日期,从 1 到 90、91 或 92QUARTER_OF_YEAR- 一年中的季度,从 1 到 4YEAR- 标准 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 月 4 日开始
- 如果 1 月 1 日是星期六,则第一周从 1 月 3 日开始
- 如果 1 月 1 日是星期日,则第一周从 1 月 2 日开始
例如:
| Date | 星期几 | 字段值 |
|---|---|---|
| 2008-12-28 | 星期日 | 2008 年第 52 周 |
| 2008-12-29 | 周一 | 2009 年的第 1 周 |
| 2008-12-31 | 周三 | 2009 年的第 1 周 |
| 2009-01-01 | 周四 | 2009 年的第 1 周 |
| 2009-01-04 | 星期日 | 2009 年的第 1 周 |
| 2009-01-05 | 周一 | 2009 年第 2 周 |
- 实现要求:
-
这个类是不可变的和线程安全的。
- 自从:
- 1.8
-
字段摘要
字段修饰符和类型Field描述static final TemporalField表示季度日期的字段。static final TemporalField代表季度的字段。static final TemporalUnit代表季度概念的单位。static final TemporalField表示基于周的年份的字段。static final TemporalUnit用于加法和减法的表示以周为基础的年份的单位。static final TemporalField表示基于年份的星期几的字段。 -
方法总结
-
字段详细信息
-
DAY_OF_QUARTER
表示季度日期的字段。该字段允许查询和设置季度值。标准年第一季度的季度日值从 1 到 90,闰年第一季度从 1 到 91,第二季度从 1 到 91,第三季度和第四季度从 1 到 92。
仅当日期、月份和年份可用时,才能计算季度日期。
设置此字段时,该值允许部分宽松,取 1 到 92 之间的任何值。如果该季度少于 92 天,则第 92 天,可能是第 91 天,在下一季度。
在解析的解析阶段,可以从年、季度和季度日创建日期。
在 严格模式 中,所有三个字段都根据其有效值范围进行验证。根据年份和季度,季度字段从 1 到 90、91 或 92 进行验证。
在 智能模式 中,所有三个字段都根据其有效值范围进行验证。 day-of-quarter 字段在 1 到 92 之间验证,忽略基于年份和季度的实际范围。如果季度日期超出实际范围一天,则结果日期晚一天。如果季度日期超出实际范围两天,则结果日期晚两天。
在 宽松模式 中,只有年份根据有效值的范围进行验证。结果日期的计算等效于以下三阶段方法。首先,在请求年份的 1 月 1 日创建一个日期。然后用一年中的季度减去一个,然后将季度中的金额添加到日期中。最后,将季度减去一天,然后将天数加到日期上。
该单元是一个不可变且线程安全的单例。
-
QUARTER_OF_YEAR
代表季度的字段。该字段允许查询和设置季度值。季度的值从 1 到 4。
仅当月份可用时才能计算季度。
在解析的解析阶段,可以从年、季度和季度日创建日期。有关详细信息,请参阅
DAY_OF_QUARTER。该单元是一个不可变且线程安全的单例。
-
WEEK_OF_WEEK_BASED_YEAR
表示基于年份的星期几的字段。该字段允许查询和设置基于周的年值的周。 week-of-week-based-year 的值从 1 到 52,如果 week-based-year 有 53 周,则为 53。
在解析的解析阶段,可以从基于星期的年份、基于星期的年份和星期几创建日期。
在 严格模式 中,所有三个字段都根据其有效值范围进行验证。 week-of-week-based-year 字段的验证范围为 1 到 52 或 53,具体取决于基于周的年份。
在 智能模式 中,所有三个字段都根据其有效值范围进行验证。 week-of-week-based-year 字段在 1 到 53 之间进行验证,忽略 week-based-year。如果基于周的年份为 53,但基于周的年份只有 52 周,则结果日期位于下一个基于周的年份的第 1 周。
在 宽松模式 中,仅根据有效值范围验证基于周的年份。如果星期几在 1 到 7 的范围之外,则结果日期将调整适当的周数以将星期几减少到 1 到 7 的范围。如果星期几- based-year 值超出 1 到 52 的范围,则任何超出的周数将从结果日期中添加或减去。
该单元是一个不可变且线程安全的单例。
-
WEEK_BASED_YEAR
表示基于周的年份的字段。该字段允许查询和设置基于周的年值。
该字段的范围与
LocalDate.MAX和LocalDate.MIN匹配。在解析的解析阶段,可以从基于星期的年份、基于星期的年份和星期几创建日期。有关详细信息,请参阅
WEEK_OF_WEEK_BASED_YEAR。该单元是一个不可变且线程安全的单例。
-
WEEK_BASED_YEARS
用于加法和减法的表示以周为基础的年份的单位。这允许在日期中添加或减去多个基于周的年份。该单位等于 52 或 53 周。基于周的年的估计持续时间与
365.2425 Days的标准 ISO 年相同。添加规则将基于周的年数添加到基于周的年字段的现有值。如果生成的基于周的年只有 52 周,则日期将在下一个基于周的年的第 1 周。
该单元是一个不可变且线程安全的单例。
-
QUARTER_YEARS
代表季度概念的单位。对于 ISO 日历系统,它等于 3 个月。一个季度的估计持续时间是365.2425 Days的四分之一。该单元是一个不可变且线程安全的单例。
-