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不一致,具体取决于年表。
一周定义为:
week-of-week-based-year
,一个用于week-based-year
。
在一个星期的一年里,每个星期只属一年。
一年的第1周是从第一个星期开始的第一周,至少有最少的天数。
一年的第一个和最后几个星期可能分别包含上一个日历年或下一个历年的天数。
Examples of WeekFields for week-based-year Date Day-of-week First day: MondayModifier and Type | Field and Description |
---|---|
static WeekFields |
ISO
ISO-8601定义,一周从星期一开始,第一周至少有4天。
|
static WeekFields |
SUNDAY_START
从周日和第一周开始的一周的常见定义至少为1天。
|
static TemporalUnit |
WEEK_BASED_YEARS
以加法和减法为目的的以星期为单位的单位。
|
Modifier and Type | Method and Description |
---|---|
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 返回一个字段以访问一周中的一周。
|
public static final WeekFields ISO
ISO-8601标准定义了一个基于周的日历系统。 它使用基于周的年份和周周的概念来分解天数,而不是标准的年/月/日。
请注意,第一周可能在上一个日历年开始。 还要注意,一个日历年的头几天可能在上一个日历年的相应年份里。
public static final WeekFields SUNDAY_START
定义为从星期日开始,并在当月至少为1天。 本周的定义在美国和其他欧洲国家使用。
public static final TemporalUnit WEEK_BASED_YEARS
这允许将一些以周为基础的年数添加到日期或从日期中减去。 该单位等于52或53周。 一个星期的一年的估计持续时间与标准ISO年的预期持续时间相同,为365.2425 Days
。
添加的规则将周数年数添加到保留周周年和周日的基于周期的现有值中,除非周数太大为目标年 在这种情况下,星期将设定为同一天的最后一周。
这个单位是一个不可变的和线程安全的单身人士。
public static WeekFields of(Locale locale)
WeekFields
的实例。
这将从本地化数据提供商中查找适当的值。
locale
- 要使用的区域设置,不为空
public static WeekFields of(DayOfWeek firstDayOfWeek, int minimalDaysInFirstWeek)
WeekFields
的实例。
第一个星期几定义了ISO DayOfWeek
这是一周的第1天。 第一周的最短天数定义了在第一周之前,从第一个星期开始,一个月或一年内必须出现多少天。 值1将计算第一周的一个月或第一天的第一天,而值7将需要整个七天在新的一个月或一年。
WeekFields实例是单例; 对于firstDayOfWeek
和minimalDaysInFirstWeek
的每个唯一组合,将返回相同的实例。
firstDayOfWeek
- 一周的第一天,不为空
minimalDaysInFirstWeek
- 第一周的最少天数,从1到7
IllegalArgumentException
- 如果最小天数小于1或大于7
public DayOfWeek getFirstDayOfWeek()
第一个星期的日子因文化而异。 例如,美国使用星期天,而法国和ISO-8601标准星期一使用。 此方法返回第一天使用标准的DayOfWeek
枚举。
public int getMinimalDaysInFirstWeek()
考虑定义一个月或一年的第一周的天数因文化而异。 例如,在计算第一周之前,ISO-8601需要4天(超过半周)。
public TemporalField dayOfWeek()
WeekFields
返回一个字段来访问星期WeekFields
。
这类似于ChronoField.DAY_OF_WEEK
,但是使用基于这个WeekFields
的星期几的WeekFields
。 天数从1到7,其中first day-of-week
被分配值1。
例如,如果第一个星期几是星期日,那么它将具有值1,其他日期的范围从星期一到2到星期六为7。
在解析的解决阶段,本周的一周将被转换为标准化的ChronoField
的星期。 星期几必须在1到7的有效范围内。此类中的其他字段使用标准化的星期几构建日期。
public TemporalField weekOfMonth()
WeekFields
返回一个字段来访问一周中的一个月。
这代表星期几星期开始的星期数周的概念。 该字段通常与dayOfWeek()
一起使用。
第一周(1)是从本月起至少有getMinimalDaysInFirstWeek()
天的getFirstDayOfWeek()
开始的一周。 因此,第一周可能会在月初开始前达到minDays
天。 如果第一个星期从月初开始,那么之前的周是零(0)。
例如:
- 如果一个月的第一天是星期一,那么第一周从第一天开始,没有周零
- 如果本月的第二天是星期一,则第一周从第二天开始,第一天在第零周
- 如果这个月的第四天是星期一,那么第一个星期从第四个开始,第一个到第三个是在零周
- 如果本月的第5天是星期一,则第5周开始第2周,第1到第4周在第1周
该字段可以与任何日历系统一起使用。
在解析的解析阶段,可以从年,周,月,月和日的星期创建日期。
在strict mode中 ,所有四个字段都针对其有效值的范围进行验证。 验证月份字段以确保生成的月份是所请求的月份。
在smart mode中 ,所有四个字段都根据其有效值的范围进行验证。 “月份”字段的验证时间为0到6,这意味着生成的日期可能与指定的日期不同。
在lenient mode中 ,根据有效值的范围验证年份和星期几。 产生的日期相当于以下四个阶段的方法。 首先,在请求的一年的1月的第一个星期的第一天创建一个日期。 然后取一个月的年份,减去一个,并将数量添加到几个月的日期。 然后拿一个月的一周,减去一个,并将数量添加到几个星期的日期。 最后,在本周内调整为正确的星期几。
public TemporalField weekOfYear()
WeekFields
返回一个字段以访问一周中的一周。
这是星期几固定星期几开始的一年内的周数计数的概念。 该字段通常与dayOfWeek()
一起使用。
第一周(1)是从一年的getFirstDayOfWeek()
开始的一周,至少有getMinimalDaysInFirstWeek()
天。 因此,第一周可能在今年年初之前开始达到minDays
天。 如果第一周从年初开始,那么前一周是零(0)。
例如:
- 如果一年中的第一天是星期一,则第一周从第一个开始,没有周零
- 如果一年的第二天是星期一,第一周从第二个开始,第一个在第零周
- 如果一年的第四天是星期一,第一周从第四天开始,第一到第三天在零周
- 如果一年的第五天是星期一,第二周从第五个开始,第一到第四是在第一周
该字段可以与任何日历系统一起使用。
在解析的解决阶段,可以从一年,一周和一周中创建一个日期。
在strict mode中 ,所有三个字段都针对其有效值的范围进行验证。 验证年周期以确保所产生的年份是所要求的年份。
在smart mode中 ,所有三个字段都根据其有效值的范围进行验证。 周期字段从0到54验证,这意味着生成的日期可以与指定的日期不同。
在lenient mode中 ,根据有效值的范围验证年份和星期几。 产生的日期相当于以下三个阶段的方法。 首先,在请求的一年的第一周的第一天创建一个日期。 然后拿一周,减去一个,并将数量添加到几个星期的日期。 最后,在本周内调整为正确的星期几。
public TemporalField weekOfWeekBasedYear()
WeekFields
返回一个字段来访问一周的周。
这代表了星期几星期从星期一开始的星期几,每周属于一年的周数的概念。 该字段通常与dayOfWeek()
和weekBasedYear()
一起使用。
第一周(1)是从一年的getFirstDayOfWeek()
开始的一周,至少有getMinimalDaysInFirstWeek()
天。 如果第一周从年初开始,那么之前的时期是在上一周的最后一个星期。
例如:
- 如果一年的第一天是星期一,那么第一天从第一天开始
- 如果一年的第二天是星期一,第一周从第二天开始,第一天在上一周的最后一周
- 如果一年的第四天是周一,第一周从第四天开始,第一到第三天在上一周的最后一周
- 如果一年的第五天是星期一,第二周从第五个开始,第一到第四是在第一周
该字段可以与任何日历系统一起使用。
在解析的解决阶段,可以从一个星期的年份,一周中的一周和一周中创建一个日期。
在strict mode中 ,所有三个字段都根据其有效值的范围进行验证。 确认一周的工作周期,以确保所产生的周年为周年。
在smart mode中 ,所有三个字段都根据其有效值的范围进行验证。 星期几的周期字段从1到53验证,这意味着生成的日期可以在指定的下一周的一年中。
在lenient mode中 ,年份和星期几根据有效值的范围进行验证。 产生的日期相当于以下三个阶段的方法。 首先,在所请求的每周的第一周的第一天创建一个日期。 然后以周为周的年份,减去一周,并将数量添加到几周内。 最后,在本周内调整为正确的星期几。
public TemporalField weekBasedYear()
WeekFields
返回一个字段以访问一周的一年。
这代表了星期几固定星期几开始的一年的概念,例如星期一,每周属于一年。 该字段通常与dayOfWeek()
和weekOfWeekBasedYear()
一起使用。
第一周(1)是从一年的getFirstDayOfWeek()
开始的一周,至少有getMinimalDaysInFirstWeek()
天。 因此,第一周可能在今年年初之前开始。 如果第一周从年初开始,那么之前的时期是在上一周的最后一个星期。
该字段可以与任何日历系统一起使用。
在解析的解决阶段,可以从一个星期的年份,一周中的一周和一周中创建一个日期。
在strict mode中 ,所有三个字段都根据其有效值的范围进行验证。 确认一周的工作周期,以确保所产生的周年为周年。
在smart mode中 ,所有三个字段都根据其有效值的范围进行验证。 星期几的周期字段从1到53验证,这意味着生成的日期可以在指定的下一周的一年中。
在lenient mode中 ,根据有效值的范围验证年份和星期几。 产生的日期相当于以下三个阶段的方法。 首先,在所请求的每周的第一周的第一天创建一个日期。 然后以周为周的年份,减去一周,并将数量添加到几周内。 最后,在本周内调整为正确的星期几。
public boolean equals(Object object)
WeekFields
是否等于指定的对象。
比较是基于规则的整个状态,这是第一个星期几和最短的日子。
equals
在类别
Object
object
- 要比较的其他规则,null返回false
Object.hashCode()
, HashMap
public int hashCode()
WeekFields
哈希码。
hashCode
在类别
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)