Module  java.base
软件包  java.time.temporal

Class WeekFields

  • All Implemented Interfaces:
    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周。 一周的估计持续时间与365.2425 Days的标准ISO年度365.2425 Days

        添加的规则将周数年数添加到保留周周年和周日的基于周期的现有值中,除非周数太大为目标年 在这种情况下,星期将设定为同一天的最后一周。

        这个单位是一个不可变的和线程安全的单身人士。

    • 方法详细信息

      • of

        public static WeekFields of​(Locale locale)
        获取一个适合于语言环境的WeekFields的实例。

        这将从本地化数据提供商中查找适当的值。

        参数
        locale - 要使用的语言环境,不为空
        结果
        周定义,不为null
      • of

        public static WeekFields of​(DayOfWeek firstDayOfWeek,
                                    int minimalDaysInFirstWeek)
        从第一天的星期几到最短的几天内获得WeekFields的实例。

        第一个星期几定义了ISO DayOfWeek ,这是一周的第1天。 第一周的最短天数定义了在第一周之前,从第一个星期开始,一个月或一年内必须出现多少天。 值1将计算第一周的一个月或第一天的第一天,而值7将需要整个七天在新的一个月或一年。

        WeekFields实例是单例; 对于firstDayOfWeekminimalDaysInFirstWeek的每个独特组合,将返回相同的实例。

        参数
        firstDayOfWeek - 一周的第一天,不为空
        minimalDaysInFirstWeek - 第一周的最少天数,从1到7
        结果
        周定义,不为null
        异常
        IllegalArgumentException - 如果最小天数小于1或大于7
      • getFirstDayOfWeek

        public DayOfWeek getFirstDayOfWeek​()
        获得第一个星期。

        第一个星期的日子因文化而异。 例如,美国使用星期天,而法国和ISO-8601标准星期一使用。 此方法使用标准DayOfWeek枚举返回第一天。

        结果
        第一个星期,不是null
      • 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的有效范围内。此类中的其他字段使用标准化的星期几构建日期。

        结果
        一个字段,提供访问本地化编号的星期几,而不是null
      • weekOfMonth

        public TemporalField weekOfMonth​()
        根据这个WeekFields返回一个字段以访问一个月的一周。

        这代表星期几星期开始的星期数周的概念。 此字段通常与dayOfWeek()一起使用

        第一周(1)是从getFirstDayOfWeek()开始的一周, 当月至少有getMinimalDaysInFirstWeek()天。 因此,第一周可能会在月初开始时间达minDays天。 如果第一个星期从月初开始,那么之前的周是零(0)。

        例如:
        - 如果一个月的第一天是星期一,那么第一周从第一天开始,没有周零
        - 如果本月的第二天是星期一,则第一周从第二天开始,第一天在第零周
        - 如果这个月的第四天是星期一,那么第一个星期从第四个开始,第一个到第三个是在零周
        - 如果本月的第5天是星期一,则第5周开始第2周,第1到第4周在第1周

        该字段可以与任何日历系统一起使用。

        在解析的解析阶段,可以从年,周,月,月和日的星期创建日期。

        strict mode中 ,所有四个字段都针对其有效值的范围进行验证。 验证月份字段以确保生成的月份是所请求的月份。

        smart mode中 ,所有四个字段都根据其有效值的范围进行验证。 “月份”字段的验证时间为0到6,这意味着生成的日期可能与指定的日期不同。

        lenient mode中 ,根据有效值的范围验证年份和星期几。 产生的日期相当于以下四个阶段的方法。 首先,在请求的一年的1月的第一个星期的第一天创建一个日期。 然后取一个月的年份,减去一个,并将数量添加到几个月的日期。 然后拿一个月的一周,减去一个,并将数量添加到几个星期的日期。 最后,在本周内调整为正确的星期几。

        结果
        提供访问月份的字段不为空
      • weekOfYear

        public TemporalField weekOfYear​()
        根据这个WeekFields返回一个字段以访问一周中的一周。

        这是星期几固定星期几开始的一年内的周数计数的概念。 该字段通常与dayOfWeek()一起使用

        第一周(1)是从getFirstDayOfWeek()开始的一周,其中至少有getMinimalDaysInFirstWeek()天。 因此,第一周可能在今年年初之前的minDays天开始。 如果第一周从年初开始,那么前一周是零(0)。

        例如:
        - 如果一年中的第一天是星期一,则第一周从第一个开始,没有周零
        - 如果一年的第二天是星期一,第一周从第二个开始,第一个在第零周
        - 如果一年的第四天是星期一,第一周从第四天开始,第一到第三天在零周
        - 如果一年的第五天是星期一,第二周从第五个开始,第一到第四是在第一周

        该字段可以与任何日历系统一起使用。

        在解析的解决阶段,可以从一年,一周和一周中创建一个日期。

        strict mode中 ,所有三个字段都根据其有效值的范围进行验证。 验证年周期以确保所产生的年份是所要求的年份。

        smart mode中 ,所有三个字段都根据其有效值的范围进行验证。 周期字段从0到54验证,这意味着生成的日期可以与指定的日期不同。

        lenient mode中 ,年份和星期几根据有效值的范围进行验证。 产生的日期相当于以下三个阶段的方法。 首先,在请求的一年的第一周的第一天创建一个日期。 然后拿一周,减去一个,并将数量添加到几个星期的日期。 最后,在本周内调整为正确的星期几。

        结果
        提供访问年份的字段不为空
      • weekOfWeekBasedYear

        public TemporalField weekOfWeekBasedYear​()
        根据这个WeekFields返回一个字段以访问一周的一周。

        这代表了星期几星期从星期一开始的星期几,每周属于一年的周数的概念。 该字段通常与dayOfWeek()weekBasedYear()一起使用

        第一周(1)是从getFirstDayOfWeek()开始的一周,其中至少有getMinimalDaysInFirstWeek()天。 如果第一周从年初开始,那么之前的时期是在上一周的最后一个星期。

        例如:
        - 如果一年的第一天是星期一,那么第一天从第一天开始
        - 如果一年中的第二天是星期一,第一周从第二天开始,第一天在上一周的最后一周
        - 如果一年的第四天是星期一,第一周从第四天开始,第一到第三天是在上一周的最后一周
        - 如果一年的第五天是星期一,第二周从第五个开始,第一到第四是在第一周

        该字段可以与任何日历系统一起使用。

        在解析的解决阶段,可以从一个星期的年份,一周中的一周和一周中创建一个日期。

        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是否等于指定的对象。

        比较是基于规则的整个状态,这是第一个星期几和最短的日子。

        重写:
        equalsObject
        参数
        object - 要比较的其他规则,null返回false
        结果
        如果这等于指定的规则,则为true
        另请参见:
        Object.hashCode()HashMap
      • toString

        public String toString​()
        这个 WeekFields实例的字符串表示形式。
        重写:
        toStringObject
        结果
        字符串表示,不为null