- java.lang.Object
-
- java.lang.Enum<DayOfWeek>
-
- java.time.DayOfWeek
-
- All Implemented Interfaces:
-
Serializable
,Comparable<DayOfWeek>
,TemporalAccessor
,TemporalAdjuster
public enum DayOfWeek extends Enum<DayOfWeek> implements TemporalAccessor, TemporalAdjuster
星期几,如“星期二”。DayOfWeek
是一个表示星期一,星期二,星期三,星期四,星期五,星期六和星期日的星期几的星期几的枚举。除了文字枚举名称外,每个星期几都有一个
int
值。int
价格遵循ISO-8601标准,从1(星期一)到7(星期日)。 建议应用程序使用枚举而不是int
值来确保代码清晰。该枚举提供访问星期几本地化的文本形式。 某些区域设置也会为日期分配不同的数值,并将星号表示为值1,但此类不提供此参数。 请参阅
WeekFields
本地化周编号。不要使用
ordinal()
获得的数字表示DayOfWeek
。 改用getValue()
。该枚举代表了许多日历系统中发现的常见概念。 因此,该枚举可以被任何具有与ISO日历系统完全相同的星期概念定义的日历系统使用。
- 实现要求:
- 这是一个不可变的和线程安全的枚举。
- 从以下版本开始:
- 1.8
-
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 Temporal
adjustInto(Temporal temporal)
将指定的时间对象调整为具有这一天的日期。static DayOfWeek
from(TemporalAccessor temporal)
从时间对象获取DayOfWeek
的实例。int
get(TemporalField field)
从这个星期几获取指定字段的值作为int
。String
getDisplayName(TextStyle style, Locale locale)
获取文本表示,如“星期一”或“星期五”。long
getLong(TemporalField field)
从这个星期几获取指定字段的值作为long
。int
getValue()
获得int
价值。boolean
isSupported(TemporalField field)
检查指定的字段是否受支持。DayOfWeek
minus(long days)
返回指定天数之前的星期几。static DayOfWeek
of(int dayOfWeek)
从int
获取DayOfWeek
的实例。DayOfWeek
plus(long days)
返回这一天后指定天数的星期几。<R> R
query(TemporalQuery<R> query)
使用指定的查询查询此星期几。ValueRange
range(TemporalField field)
获取指定字段的有效值的范围。static DayOfWeek
valueOf(String name)
以指定的名称返回此类型的枚举常量。static DayOfWeek[]
values()
按照它们声明的顺序返回一个包含此枚举类型常量的数组。
-
-
-
Enum Constant Detail
-
MONDAY
public static final DayOfWeek MONDAY
星期一星期几的单身人士例子。 其数值为1
。
-
TUESDAY
public static final DayOfWeek TUESDAY
星期二星期几的单身人士例子。 它的数值为2
。
-
WEDNESDAY
public static final DayOfWeek WEDNESDAY
星期三的星期几的单身人士例子。 这个数值为3
。
-
THURSDAY
public static final DayOfWeek THURSDAY
星期四的单日例子。 这个数值为4
。
-
FRIDAY
public static final DayOfWeek FRIDAY
星期五的单日例子。 这个数值为5
。
-
SATURDAY
public static final DayOfWeek SATURDAY
星期六的单日例子。 这个数值为6
。
-
SUNDAY
public static final DayOfWeek SUNDAY
星期天的星期几的单身人士例子。 这个数值为7
。
-
-
方法详细信息
-
values
public static DayOfWeek[] values()
按照它们声明的顺序返回一个包含此枚举类型常量的数组。 该方法可用于遍历常量如下:for (DayOfWeek c : DayOfWeek.values()) System.out.println(c);
- 结果
- 一个包含这个枚举类型的常量的数组,按照它们被声明的顺序
-
valueOf
public static DayOfWeek valueOf(String name)
以指定的名称返回此类型的枚举常量。 字符串必须完全匹配用于声明此类型的枚举常量的标识符。 (不允许使用外来空白字符。)- 参数
-
name
- 要返回的枚举常量的名称。 - 结果
- 具有指定名称的枚举常数
- 异常
-
IllegalArgumentException
- 如果此枚举类型没有指定名称的常量 -
NullPointerException
- 如果参数为空
-
of
public static DayOfWeek of(int dayOfWeek)
从int
获取DayOfWeek
的实例。DayOfWeek
是一个代表本周7天的枚举。 该工厂允许从int
获取枚举。int
价格遵循ISO-8601标准,从1(星期一)到7(星期日)。- 参数
-
dayOfWeek
- 代表从1(星期一)到7(星期日)的星期几 - 结果
- 一天的单身人士,不为零
- 异常
-
DateTimeException
- 如果星期几无效
-
from
public static DayOfWeek from(TemporalAccessor temporal)
从时间对象获取一个DayOfWeek
的实例。这取决于指定时间的星期几。 A
TemporalAccessor
表示任意一组日期和时间信息,该工厂将转换为DayOfWeek
一个实例。该转换提取了
DAY_OF_WEEK
字段。该方法匹配功能接口
TemporalQuery
的签名,允许其通过方法参考DayOfWeek::from
用作查询。- 参数
-
temporal
- 要转换的时间对象,不为null - 结果
- 星期几不为零
- 异常
-
DateTimeException
- 如果无法转换为DayOfWeek
-
getValue
public int getValue()
获得周二int
价值。这些值按照ISO-8601标准编号,从1(星期一)到7(星期日)。 有关本地化的星期编号,请参阅
WeekFields.dayOfWeek()
。- 结果
- 从星期一到星期日从星期一到星期日的星期几
-
getDisplayName
public String getDisplayName(TextStyle style, Locale locale)
- 参数
-
style
- 所需文本的长度,不为空 -
locale
- 要使用的语言环境,不为空 - 结果
- 星期几的文本值不为null
-
isSupported
public boolean isSupported(TemporalField field)
检查指定的字段是否受支持。这将检查是否可以查询指定字段的星期几。 如果是false,那么调用
range
和get
方法会抛出异常。如果该字段为
DAY_OF_WEEK
,则此方法返回true。 所有其他ChronoField
实例将返回false。如果该字段是不是一个
ChronoField
,则此方法的结果是通过调用得到TemporalField.isSupportedBy(TemporalAccessor)
传递this
作为参数。 字段是否受支持由字段决定。- Specified by:
-
isSupported
在接口TemporalAccessor
- 参数
-
field
- 要检查的字段,null返回false - 结果
- 如果在这个星期几支持该字段,则为true,否则为false
-
range
public ValueRange range(TemporalField field)
获取指定字段的有效值的范围。范围对象表示字段的最小和最大有效值。 这个星期几用于提高返回范围的准确性。 如果不可能返回范围,因为该字段不受支持或出于某种其他原因,则抛出异常。
如果字段是
DAY_OF_WEEK
,那么将返回从1到7的星期几的范围。 所有其他ChronoField
实例将抛出一个UnsupportedTemporalTypeException
。如果该字段是不是一个
ChronoField
,则此方法的结果是通过调用得到TemporalField.rangeRefinedBy(TemporalAccessor)
传递this
作为参数。 是否可以获得范围由字段确定。- Specified by:
-
range
在接口TemporalAccessor
- 参数
-
field
- 查询范围的字段,不为null - 结果
- 字段的有效值的范围不为null
- 异常
-
DateTimeException
- 如果无法获取字段的范围 -
UnsupportedTemporalTypeException
- 如果该字段不被支持
-
get
public int get(TemporalField field)
从这个星期几获取指定字段的值作为int
。这将查询指定字段的值的星期几。 返回的值将始终在该字段的值的有效范围内。 如果不可能返回值,因为该字段不受支持或出于某种其他原因,则抛出异常。
如果字段是
DAY_OF_WEEK
,那么将返回从1到7的星期几的值。 所有其他ChronoField
实例将抛出一个UnsupportedTemporalTypeException
。如果该字段是不是一个
ChronoField
,则此方法的结果是通过调用得到TemporalField.getFrom(TemporalAccessor)
传递this
作为参数。 该值是否可以获得,该值代表什么值由该字段决定。- Specified by:
-
get
在接口TemporalAccessor
- 参数
-
field
- 要获取的字段,不为null - 结果
- 该字段的值在值的有效范围内
- 异常
-
DateTimeException
- 如果无法获取字段的值,或者该值超出了该字段的有效值的范围 -
UnsupportedTemporalTypeException
- 如果该字段不受支持或值的范围超过int
-
ArithmeticException
- 如果发生数字溢出
-
getLong
public long getLong(TemporalField field)
从这个星期几获取指定字段的值作为long
。这将查询指定字段的值的星期几。 如果不可能返回值,因为该字段不受支持或出于某种其他原因,则抛出异常。
如果字段是
DAY_OF_WEEK
,那么将返回从1到7的星期几的值。 所有其他ChronoField
实例将抛出一个UnsupportedTemporalTypeException
。如果该字段是不是一个
ChronoField
,则此方法的结果是通过调用得到TemporalField.getFrom(TemporalAccessor)
传递this
作为参数。 该值是否可以获得,该值代表什么值由该字段决定。- Specified by:
-
getLong
在接口TemporalAccessor
- 参数
-
field
- 要获取的字段,不为null - 结果
- 该字段的值
- 异常
-
DateTimeException
- 如果无法获取该字段的值 -
UnsupportedTemporalTypeException
- 如果不支持该字段 -
ArithmeticException
- 如果发生数字溢出
-
plus
public DayOfWeek plus(long days)
返回这一天后指定天数的星期几。周末到周一,周末的计算结束。 指定期间可能为负。
此实例是不可变的,不受此方法调用的影响。
- 参数
-
days
- 添加的日子,正面或者负面 - 结果
- 由此产生的星期几不为零
-
minus
public DayOfWeek minus(long days)
返回指定天数之前的星期几。计算周一至周日从年初开始计算。 指定期间可能为负。
此实例是不可变的,不受此方法调用的影响。
- 参数
-
days
- 减去正数或负数的日期 - 结果
- 由此产生的星期几不为零
-
query
public <R> R query(TemporalQuery<R> query)
使用指定的查询查询此星期几。这使用指定的查询策略对象来查询这个星期几。
TemporalQuery
对象定义要用于获取结果的逻辑。 阅读查询的文档,以了解该方法的结果。该方法的结果是通过在指定的查询
this
作为参数调用TemporalQuery.queryFrom(TemporalAccessor)
方法获得的。- Specified by:
-
query
在接口TemporalAccessor
- 参数类型
-
R
- 结果的类型 - 参数
-
query
- 要调用的查询,不为空 - 结果
- 查询结果可能返回null(由查询定义)
- 异常
-
DateTimeException
- 如果无法查询(由查询定义) -
ArithmeticException
- 如果发生数字溢出(由查询定义)
-
adjustInto
public Temporal adjustInto(Temporal temporal)
将指定的时间对象调整为具有这一天的日期。这返回与周日的输入相同的可观察类型的时间对象与此相同。
该调整是相当于使用
Temporal.with(TemporalField, long)
通过ChronoField.DAY_OF_WEEK
作为字段。 请注意,这将在星期一至星期日周前向前或向后进行调整。 有关本周的开始日期,请参阅WeekFields.dayOfWeek()
。 有关更多控制的其他调整器,请参见TemporalAdjuster
,如next(MONDAY)
。在大多数情况下,通过使用
Temporal.with(TemporalAdjuster)
来更正呼叫模式:// these two lines are equivalent, but the second approach is recommended temporal = thisDayOfWeek.adjustInto(temporal); temporal = temporal.with(thisDayOfWeek);
例如,给定一个星期三的日期,输出以下内容:
dateOnWed.with(MONDAY); // two days earlier dateOnWed.with(TUESDAY); // one day earlier dateOnWed.with(WEDNESDAY); // same date dateOnWed.with(THURSDAY); // one day later dateOnWed.with(FRIDAY); // two days later dateOnWed.with(SATURDAY); // three days later dateOnWed.with(SUNDAY); // four days later
此实例是不可变的,不受此方法调用的影响。
- Specified by:
-
adjustInto
在接口TemporalAdjuster
- 参数
-
temporal
- 要调整的目标对象,不为null - 结果
- 调整对象,不为null
- 异常
-
DateTimeException
- 如果无法进行调整 -
ArithmeticException
- 如果发生数字溢出
-
-