- 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 方法 描述 TemporaladjustInto(Temporal temporal)将指定的时间对象调整为具有这一天的日期。static DayOfWeekfrom(TemporalAccessor temporal)从时间对象获取DayOfWeek的实例。intget(TemporalField field)从这个星期几获取指定字段的值作为int。StringgetDisplayName(TextStyle style, Locale locale)获取文本表示,如“星期一”或“星期五”。longgetLong(TemporalField field)从这个星期几获取指定字段的值作为long。intgetValue()获得int价值。booleanisSupported(TemporalField field)检查指定的字段是否受支持。DayOfWeekminus(long days)返回指定天数之前的星期几。static DayOfWeekof(int dayOfWeek)从int获取DayOfWeek的实例。DayOfWeekplus(long days)返回这一天后指定天数的星期几。<R> Rquery(TemporalQuery<R> query)使用指定的查询查询此星期几。ValueRangerange(TemporalField field)获取指定字段的有效值的范围。static DayOfWeekvalueOf(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- 如果发生数字溢出
-
-