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

Class WeekFields

  • 实现的所有接口
    Serializable

    public final class WeekFields
    extends Object
    implements Serializable
    星期几,星期和星期字段的本地化定义。

    标准周是七天,但文化对一周的其他方面有不同的定义。 此类表示本周的定义,目的是提供TemporalField实例。

    WeekFields提供了五个领域, dayOfWeek()weekOfMonth()weekOfYear()weekOfWeekBasedYear()weekBasedYear() ,提供从任何访问值temporal object

    对于本周日的最计算,一年周的周的日,以及基于该proleptic-yearmonth-of-yearday-of-monthISO 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
    • 字段详细信息

      • 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实例是单例; 对于firstDayOfWeekminimalDaysInFirstWeek的每个唯一组合,将返回相同的实例。

        参数
        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
      • toString

        public String toString()
        WeekFields实例的字符串表示形式。
        重写:
        toString in class Object
        结果
        字符串表示,不为null