- 所有已实现的接口:
Serializable,Comparable<DayOfWeek>,Constable,TemporalAccessor,TemporalAdjuster
DayOfWeek 是一个枚举,表示一周中的 7 天 - 星期一、星期二、星期三、星期四、星期五、星期六和星期日。
除了文本枚举名称之外,每个星期几都有一个 int 值。 int 值遵循 ISO-8601 标准,从 1(星期一)到 7(星期日)。建议应用程序使用枚举而不是 int 值以确保代码清晰。
此枚举提供对星期几的本地化文本形式的访问。某些locale还为日期分配不同的数值,将星期日声明为值 1,但是此类不对此提供支持。有关本地化的周编号,请参阅 WeekFields 。
不要使用 ordinal() 获取 DayOfWeek 的数字表示。请改用 getValue()。
这个枚举代表了一个常见的概念,在许多日历系统中都能找到。因此,这个枚举可以被任何具有与 ISO 日历系统完全等同的星期概念定义的日历系统使用。
- 实现要求:
- 这是一个不可变且线程安全的枚举。
- 自从:
- 1.8
-
内部类总结
在类 java.lang.Enum 中声明的嵌套类/接口
Enum.EnumDesc<E extends Enum<E>> -
枚举常量总结
枚举常量 -
方法总结
修饰符和类型方法描述adjustInto(Temporal temporal) 调整指定的时间对象以具有一周中的这一天。static DayOfWeekfrom(TemporalAccessor temporal) 从时间对象中获取DayOfWeek的实例。intget(TemporalField field) 从这个星期几获取指定字段的值作为int。getDisplayName(TextStyle style, Locale locale) 获取文本表示形式,例如“星期一”或“星期五”。longgetLong(TemporalField field) 从这个星期几获取指定字段的值作为long。intgetValue()获取星期几int值。booleanisSupported(TemporalField field) 检查是否支持指定的字段。minus(long days) 返回在此日期之前指定天数的星期几。static DayOfWeekof(int dayOfWeek) 从int值获取DayOfWeek的实例。plus(long days) 返回指定天数之后的星期几。<R> Rquery(TemporalQuery<R> query) 使用指定的查询查询星期几。range(TemporalField field) 获取指定字段的有效值范围。static DayOfWeek返回具有指定名称的此类的枚举常量。static DayOfWeek[]values()返回一个数组,其中包含此枚举类的常量,按照它们声明的顺序排列。
-
枚举常量详细信息
-
MONDAY
星期一星期几的单例实例。这具有1的数值。 -
TUESDAY
星期二星期几的单例实例。这具有2的数值。 -
WEDNESDAY
星期三星期几的单例实例。这具有3的数值。 -
THURSDAY
星期四星期几的单例实例。这具有4的数值。 -
FRIDAY
星期五星期几的单例实例。这具有5的数值。 -
SATURDAY
星期六星期几的单例实例。这具有6的数值。 -
SUNDAY
星期日星期几的单例实例。这具有7的数值。
-
-
方法详情
-
values
返回一个数组,其中包含此枚举类的常量,按照它们声明的顺序排列。- 返回:
- 包含此枚举类常量的数组,按照它们声明的顺序排列
-
valueOf
返回具有指定名称的此类的枚举常量。字符串必须匹配确切地用于在此类中声明枚举常量的标识符。 (不允许使用无关的空白字符。)- 参数:
name- 要返回的枚举常量的名称。- 返回:
- 具有指定名称的枚举常量
- 抛出:
IllegalArgumentException- 如果此枚举类没有具有指定名称的常量NullPointerException- 如果参数为空
-
of
从int值获取DayOfWeek的实例。DayOfWeek是一个代表一周 7 天的枚举。该工厂允许从int值中获取枚举。int值遵循 ISO-8601 标准,从 1(星期一)到 7(星期日)。- 参数:
dayOfWeek- 表示星期几,从 1(星期一)到 7(星期日)- 返回:
- 星期几单身人士,不为空
- 抛出:
DateTimeException- 如果星期几无效
-
from
从时间对象中获取DayOfWeek的实例。这将根据指定的时间获取星期几。
TemporalAccessor表示一组任意的日期和时间信息,该工厂将其转换为DayOfWeek的一个实例。转换提取
DAY_OF_WEEK字段。此方法与功能接口
TemporalQuery的签名相匹配,允许它通过方法参考DayOfWeek::from用作查询。- 参数:
temporal- 要转换的时间对象,不为空- 返回:
- 星期几,不为空
- 抛出:
DateTimeException- 如果无法转换为DayOfWeek
-
getValue
public int getValue()获取星期几int值。这些值按照 ISO-8601 标准进行编号,从 1(星期一)到 7(星期日)。有关本地化的周编号,请参阅
WeekFields.dayOfWeek()。- 返回:
- 星期几,从 1(星期一)到 7(星期日)
-
getDisplayName
获取文本表示形式,例如“星期一”或“星期五”。这将返回用于标识星期几的文本名称,适合呈现给用户。参数控制返回文本的样式和locale。
如果未找到文本映射,则返回
numeric value。- 参数:
style- 所需文本的长度,不为空locale- 要使用的locale,不为空- 返回:
- 星期几的文本值,不为空
-
isSupported
检查是否支持指定的字段。这将检查是否可以查询指定字段的这一周几。如果为 false,则调用
range和get方法将抛出异常。如果该字段为
DAY_OF_WEEK,则此方法返回 true。所有其他ChronoField实例将返回 false。如果该字段不是
ChronoField,则通过调用TemporalField.isSupportedBy(TemporalAccessor)传递this作为参数来获得此方法的结果。字段是否支持由字段决定。- 指定者:
isSupported在接口TemporalAccessor中- 参数:
field- 要检查的字段,null 返回 false- 返回:
- 如果该字段在一周中的这一天受支持,则为 true,否则为 false
-
range
获取指定字段的有效值范围。范围对象表示字段的最小和最大有效值。此星期几用于提高返回范围的准确性。如果由于不支持该字段或其他原因而无法返回范围,则会抛出异常。
如果该字段为
DAY_OF_WEEK,则将返回星期几的范围,从 1 到 7。所有其他ChronoField实例将抛出UnsupportedTemporalTypeException。如果该字段不是
ChronoField,则通过调用TemporalField.rangeRefinedBy(TemporalAccessor)传递this作为参数来获得此方法的结果。能否获取范围由字段决定。- 指定者:
range在接口TemporalAccessor中- 参数:
field- 查询范围的字段,不为空- 返回:
- 该字段的有效值范围,不为空
- 抛出:
DateTimeException- 如果无法获得该字段的范围UnsupportedTemporalTypeException- 如果不支持该字段
-
get
从这个星期几获取指定字段的值作为int。这将在一周中的这一天查询指定字段的值。返回值将始终在该字段的有效值范围内。如果由于不支持该字段或其他原因而无法返回该值,则会抛出异常。
如果该字段为
DAY_OF_WEEK,则将返回从 1 到 7 的星期几的值。所有其他ChronoField实例将抛出UnsupportedTemporalTypeException。如果该字段不是
ChronoField,则通过调用TemporalField.getFrom(TemporalAccessor)传递this作为参数来获得此方法的结果。能否获取到该值,该值代表什么,由字段决定。- 指定者:
get在接口TemporalAccessor中- 参数:
field- 要获取的字段,不为空- 返回:
- 字段的值,在值的有效范围内
- 抛出:
DateTimeException- 如果无法获取该字段的值或该值超出该字段的有效值范围UnsupportedTemporalTypeException- 如果不支持该字段或值的范围超过intArithmeticException- 如果发生数字溢出
-
getLong
从这个星期几获取指定字段的值作为long。这将在一周中的这一天查询指定字段的值。如果由于不支持该字段或其他原因而无法返回该值,则会抛出异常。
如果该字段为
DAY_OF_WEEK,则将返回从 1 到 7 的星期几的值。所有其他ChronoField实例将抛出UnsupportedTemporalTypeException。如果该字段不是
ChronoField,则通过调用TemporalField.getFrom(TemporalAccessor)传递this作为参数来获得此方法的结果。能否获取到该值,该值代表什么,由字段决定。- 指定者:
getLong在接口TemporalAccessor中- 参数:
field- 要获取的字段,不为空- 返回:
- 该字段的值
- 抛出:
DateTimeException- 如果无法获得该字段的值UnsupportedTemporalTypeException- 如果不支持该字段ArithmeticException- 如果发生数字溢出
-
plus
返回指定天数之后的星期几。计算在周日至周一的周末前后滚动。指定期间可能为负数。
此实例是不可变的,不受此方法调用的影响。
- 参数:
days- 添加的天数,正数或负数- 返回:
- 结果星期几,不为空
-
minus
返回在此日期之前指定天数的星期几。计算从年初的周一到周日滚动。指定期间可能为负数。
此实例是不可变的,不受此方法调用的影响。
- 参数:
days- 要减去的天数,正数或负数- 返回:
- 结果星期几,不为空
-
query
使用指定的查询查询星期几。这将使用指定的查询策略对象查询星期几。
TemporalQuery对象定义了用于获取结果的逻辑。阅读查询文档以了解此方法的结果。此方法的结果是通过对指定查询调用
TemporalQuery.queryFrom(TemporalAccessor)方法并将this作为参数传递来获得的。- 指定者:
query在接口TemporalAccessor中- 类型参数:
R- 结果的类型- 参数:
query- 要调用的查询,不为空- 返回:
- 查询结果,可能返回null(由查询定义)
- 抛出:
DateTimeException- 如果无法查询(由查询定义)ArithmeticException- 如果发生数字溢出(由查询定义)
-
adjustInto
调整指定的时间对象以具有一周中的这一天。这将返回一个与输入具有相同可观察类型的时间对象,其中星期几更改为与此相同。
调整相当于使用
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
此实例是不可变的,不受此方法调用的影响。
- 指定者:
adjustInto在接口TemporalAdjuster中- 参数:
temporal- 要调整的目标对象,不为空- 返回:
- 调整后的对象,不为空
- 抛出:
DateTimeException- 如果无法进行调整ArithmeticException- 如果发生数字溢出
-