- java.lang.Object
-
- java.time.temporal.WeekFields
-
- 实现的所有接口
-
Serializable
public final class WeekFields extends Object implements Serializable
星期几,星期和星期字段的本地化定义。标准周是七天,但文化对一周的其他方面有不同的定义。 此类表示本周的定义,目的是提供
TemporalField
个实例。WeekFields提供了五个领域,
dayOfWeek()
,weekOfMonth()
,weekOfYear()
,weekOfWeekBasedYear()
和weekBasedYear()
,提供从任何访问值temporal object 。对于本周日的最计算,一年周的周的日,以及基于该proleptic-year , month-of-year , day-of-month和ISO day-of-week这是基于epoch-day和年表。 根据年表的不同,这些值可能与year-of-Era不一致 。
一周的定义是:
- 第一天。 例如,ISO-8601标准将星期一视为第一天。
- 第一周的最小天数。 例如,ISO-8601标准计算第一周需要至少4天。
每个月的一周
使用一个字段:每周一次。 计算确保周数不会与月份边界重叠。 月份分为每个时段从定义的第一天开始的时段。 最早的时期如果小于最小天数则称为第0周,如果它具有至少最小天数则称为第1周。 Examples of WeekFields Date Day-of-week First day: Monday
Minimal days: 4 First day: Monday
Minimal days: 5 2008-12-31 Wednesday Week 5 of December 2008 Week 5 of December 2008 2009-01-01 Thursday Week 1 of January 2009 Week 0 of January 2009 2009-01-04 Sunday Week 1 of January 2009 Week 0 of January 2009 2009-01-05 Monday Week 2 of January 2009 Week 1 of January 2009一周的一周
使用一个字段:每周一次。 计算确保周数不会与年份边界重叠。 年份分为每个时段从定义的第一天开始的时段。 最早的时期如果小于最小天数则称为第0周,如果它具有至少最小天数则称为第1周。基于周的年份
两个字段用于基于周的年份,一个用于week-of-week-based-year
,一个用于week-based-year
。 在以周为基础的一年中,每周只属于一年。 一周的第1周是从第一天开始的第一周,并且至少具有最小天数。 一年的第一周和最后一周可能分别包含上一个日历年或下一个日历年的天数。 Examples of WeekFields for week-based-year Date Day-of-week First day: Monday
Minimal days: 4 First day: Monday
Minimal days: 5 2008-12-31 Wednesday Week 1 of 2009 Week 53 of 2008 2009-01-01 Thursday Week 1 of 2009 Week 53 of 2008 2009-01-04 Sunday Week 1 of 2009 Week 53 of 2008 2009-01-05 Monday Week 2 of 2009 Week 1 of 2009- 实现要求:
- 这个类是不可变的和线程安全的。
- 从以下版本开始:
- 1.8
- 另请参见:
- Serialized Form
-
-
字段汇总
字段 变量和类型 字段 描述 static WeekFields
ISO
ISO-8601定义,一周从星期一开始,第一周至少有4天。static WeekFields
SUNDAY_START
从星期日和第一周开始的一周的通用定义至少为1天。static TemporalUnit
WEEK_BASED_YEARS
表示加法和减法的基于周的年份的单位。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 TemporalField
dayOfWeek()
返回一个字段,以便根据此WeekFields
访问星期WeekFields
。boolean
equals(Object object)
检查此WeekFields
是否等于指定的对象。DayOfWeek
getFirstDayOfWeek()
获取第一天的星期几。int
getMinimalDaysInFirstWeek()
获取第一周的最小天数。int
hashCode()
此WeekFields
哈希码。static WeekFields
of(DayOfWeek firstDayOfWeek, int minimalDaysInFirstWeek)
从第一天和最小日期获得WeekFields
的实例。static WeekFields
of(Locale locale)
获得适合于区域设置的WeekFields
的实例。String
toString()
此WeekFields
实例的字符串表示形式。TemporalField
weekBasedYear()
返回一个字段,以便根据此WeekFields
访问基于周的年份。TemporalField
weekOfMonth()
返回一个字段,以根据此WeekFields
访问一周中的某一周。TemporalField
weekOfWeekBasedYear()
返回一个字段,以根据此WeekFields
访问基于一周的周的周。TemporalField
weekOfYear()
返回一个字段,以根据此WeekFields
访问一周中的某一周。
-
-
-
字段详细信息
-
ISO
public static final WeekFields ISO
ISO-8601定义,一周从星期一开始,第一周至少有4天。ISO-8601标准定义了基于周的日历系统。 它使用基于周的年和基于周的概念来分割天数而不是标准年/月/日。
请注意,第一周可能会在上一个日历年开始。 另请注意,日历年的前几天可能是与上一个日历年相对应的基于周的年份。
-
SUNDAY_START
public static final WeekFields SUNDAY_START
从星期日和第一周开始的一周的通用定义至少为1天。定义为周日开始,每月最少1天。 本周定义在美国和其他欧洲国家使用。
-
WEEK_BASED_YEARS
public static final TemporalUnit WEEK_BASED_YEARS
表示加法和减法的基于周的年份的单位。这允许将一些基于周的年份添加到日期或从日期中减去。 该单位等于52或53周。 基于周的年度的估计持续时间与标准ISO年份的估计持续时间相同,为
365.2425 Days
。添加规则将基于周的年数添加到基于周的年度字段的现有值中,该字段保留基于星期的星期和星期几,除非星期数太大目标年份。 在这种情况下,将一周设置为一年中的最后一周,具有相同的星期几。
此单元是一个不可变且线程安全的单例。
-
-
方法详细信息
-
of
public static WeekFields of(Locale locale)
获得适用于区域设置的WeekFields
实例。这将从本地化数据提供者处查找适当的值。 如果语言环境包含“fw”(星期几的第一天)和/或“rg”(区域覆盖) Unicode extensions ,则返回的实例将反映使用这些扩展名指定的值。 如果同时指定了“fw”和“rg”,则“fw”扩展名中的值将取代“rg”扩展名中的隐含值。
- 参数
-
locale
- 要使用的语言环境,而不是null - 结果
- 周定义,不是空
-
of
public static WeekFields of(DayOfWeek firstDayOfWeek, int minimalDaysInFirstWeek)
从第一天和最小日期获得WeekFields
的实例。第一天的每周定义ISO
DayOfWeek
,即一周中的第一天。 第一周的最小天数定义一个月或一年中必须存在的天数,从第一天开始,在将一周计算为第一周之前。 值1将计算作为第一周的一部分的月或年的第一天,而值7将要求整个七天在新的月或年中。WeekFields实例是单例; 对于
firstDayOfWeek
和minimalDaysInFirstWeek
的每个唯一组合,将返回相同的实例。- 参数
-
firstDayOfWeek
- 一周的第一天,不是null -
minimalDaysInFirstWeek
- 第一周的最小天数,从1到7 - 结果
- 周定义,不是空
- 异常
-
IllegalArgumentException
- 如果最小天数值小于1或大于7
-
getFirstDayOfWeek
public DayOfWeek getFirstDayOfWeek()
获取第一天的星期几。每周的第一天因文化而异。 例如,美国使用星期日,而法国和ISO-8601标准使用星期一。 此方法使用标准
DayOfWeek
枚举返回第一天。- 结果
- 第一天,不是空
-
getMinimalDaysInFirstWeek
public int getMinimalDaysInFirstWeek()
获取第一周的最小天数。考虑定义一个月或一年的第一周的天数因文化而异。 例如,在计算第一周之前,ISO-8601需要4天(超过半周)。
- 结果
- 一个月或一年中第一周的最小天数,从1到7
-
dayOfWeek
public TemporalField dayOfWeek()
返回一个字段,以便根据此WeekFields
访问星期WeekFields
。这类似于
ChronoField.DAY_OF_WEEK
,但使用基于此WeekFields
的星期几的WeekFields
。 日期从1到7编号,其中first day-of-week
被赋值为1。例如,如果第一天的星期日是星期日,那么它将具有值1,其他日期从星期一2到星期六7。
在解析的解析阶段,本地化的星期几将转换为标准化的
ChronoField
星期几。 星期几必须在1到7的有效范围内。此类中的其他字段使用标准化的星期几构建日期。- 结果
- 通过本地化编号提供对星期几的访问的字段,而不是空
-
weekOfMonth
public TemporalField weekOfMonth()
返回一个字段,以便根据此WeekFields
访问一周中的某一周。这表示在固定的星期几(例如星期一)开始数周的月内计数的概念。 该字段通常与
dayOfWeek()
一起使用 。第一周(1)是从
getFirstDayOfWeek()
开始的一周,其中每月至少有getMinimalDaysInFirstWeek()
天。 因此,第一周可能会在minDays
之前的minDays
天开始。 如果第一周在月初之后开始,那么之前的时段是第0周(0)。例如:
- 如果该月的第一天是星期一,则第一周从第一天开始,并且没有第零周
- 如果该月的第二天是星期一,则第一周从第二天开始,第一天在第零周
- 如果该月的第4天是星期一,则第1周从第4天开始,第1至第3季在第0周
- 如果该月的第5天是星期一,则第5周的第2周开始,第1周的第1至第4天此字段可用于任何日历系统。
在解析的解析阶段,可以从一年,一周,一个月和一周中创建日期。
在strict mode中 ,所有四个字段都根据其有效值范围进行验证。 验证周工作字段以确保生成的月份是请求的月份。
在smart mode中 ,所有四个字段都根据其有效值范围进行验证。 星期值字段的验证范围为0到6,表示生成的日期可以与指定的月份不同。
在lenient mode中 ,根据有效值范围验证年和星期。 计算得出的日期相当于以下四阶段方法。 首先,在要求年份的1月第一周的第一天创建日期。 然后取一年中的一个月,减去一个月,并将该数量添加到该日期的月份中。 然后取一周中的一周,减去一个,并将该数量添加到该日期的几周内。 最后,调整到本地周内正确的星期几。
- 结果
- 提供对周的访问的字段,而不是空
-
weekOfYear
public TemporalField weekOfYear()
返回一个字段,以根据此WeekFields
访问一周中的某一周。这代表了一周中的周数的概念,其中周数在固定的星期几开始,例如星期一。 该字段通常与
dayOfWeek()
一起使用 。第一周(1)是从
getFirstDayOfWeek()
开始的一周,其中一年中至少有getMinimalDaysInFirstWeek()
天。 因此,第一周可能会在minDays
之前的minDays
天开始。 如果第一周在年初之后开始,则之前的时段是第0周(0)。例如:
- 如果一年的第一天是星期一,则第一周从第一天开始,没有第零周
- 如果一年的第二天是星期一,则第一周从第二天开始,第一天在第零周
- 如果一年的第4天是星期一,则第1周从第4天开始,第1至第3周在第0周
- 如果一年的第5天是星期一,第2周从5日开始,1日到4日是在第1周此字段可用于任何日历系统。
在解析的解析阶段,可以从一年,一周和一周中创建日期。
在strict mode中 ,所有三个字段都根据其有效值范围进行验证。 对年度字段进行验证,以确保生成的年份是请求的年份。
在smart mode中 ,所有三个字段都根据其有效值范围进行验证。 年周字段的验证范围为0到54,这意味着生成的日期可以与指定的日期不同。
在lenient mode中 ,根据有效值范围验证年和星期。 计算得出的日期相当于以下三阶段方法。 首先,在请求年份的第一周的第一天创建日期。 然后取一年中的一周,减去一个,并将该数量添加到该日期的几周内。 最后,调整到本地周内正确的星期几。
- 结果
- 提供访问一周的字段,而不是空
-
weekOfWeekBasedYear
public TemporalField weekOfWeekBasedYear()
返回一个字段,以根据此WeekFields
访问基于周的一周的周。这代表了一周中的周数的概念,其中周数在固定的星期几开始,例如星期一,每周属于恰好一年。 该字段通常与
dayOfWeek()
和weekBasedYear()
一起使用 。第一周(1)是从
getFirstDayOfWeek()
开始的一周,其中一年中至少有getMinimalDaysInFirstWeek()
天。 如果第一周在年初之后开始,则之前的时段是在上一年的最后一周。例如:
- 如果一年的第一天是星期一,则第一周从第一天开始
- 如果一年的第二天是星期一,第一周从第二天开始,第一天是在上一年的最后一周
- 如果一年的第四天是星期一,第一周从第四天开始,第一到第三天是在上一年的最后一周
- 如果一年的第5天是星期一,第2周从5日开始,1日到4日是在第1周此字段可用于任何日历系统。
在解析的解析阶段,可以从基于周的年,周和星期创建日期。
在strict mode中 ,所有三个字段都根据其有效值范围进行验证。 对年度字段进行验证,以确保生成的基于周的年份是请求的基于周的年份。
在smart mode中 ,所有三个字段都根据其有效值范围进行验证。 基于星期的年份字段的验证范围为1到53,这意味着生成的日期可以是指定的下一周基于年份。
在lenient mode中 ,根据有效值范围验证年和星期。 计算得出的日期相当于以下三阶段方法。 首先,在请求的基于周的年份的第一周的第一天创建日期。 然后采用以周为基础的年份,减去一年,并将该数量添加到该日期的周数中。 最后,调整到本地周内正确的星期几。
- 结果
- 提供对基于周的工作年的访问的字段,而不是空
-
weekBasedYear
public TemporalField weekBasedYear()
返回一个字段,以便根据此WeekFields
访问基于星期的年份。这代表了一周的概念,其中周开始于固定的星期几,例如星期一,每周属于一年。 该字段通常与
dayOfWeek()
和weekOfWeekBasedYear()
一起使用 。第一周(1)是从
getFirstDayOfWeek()
开始的一周,其中一年中至少有getMinimalDaysInFirstWeek()
天。 因此,第一周可以在年初之前开始。 如果第一周在年初之后开始,则之前的时段是在上一年的最后一周。此字段可用于任何日历系统。
在解析的解析阶段,可以从基于周的年,周和星期创建日期。
在strict mode中 ,所有三个字段都根据其有效值范围进行验证。 对年度字段进行验证,以确保生成的基于周的年份是请求的基于周的年份。
在smart mode中 ,所有三个字段都根据其有效值范围进行验证。 基于星期的年份字段的验证范围为1到53,这意味着生成的日期可以是指定的下一周基于年份。
在lenient mode中 ,根据有效值范围验证年和星期。 计算得出的日期相当于以下三阶段方法。 首先,在请求的基于周的年份的第一周的第一天创建日期。 然后采用以周为基础的年份,减去一年,并将该数量添加到该日期的周数中。 最后,调整到本地周内正确的星期几。
- 结果
- 提供对基于周的年度的访问的字段,而不是空
-
equals
public boolean equals(Object object)
检查此WeekFields
是否等于指定的对象。比较基于规则的整个状态,即第一天和最小天。
- 重写:
-
equals
在课程Object
- 参数
-
object
- 要比较的其他规则,null返回false - 结果
- 如果它等于指定的规则,则返回true
- 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
此WeekFields
哈希码。- 重写:
-
hashCode
在课程Object
- 结果
- 合适的哈希码
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-