public enum DayOfWeek extends Enum<DayOfWeek> implements TemporalAccessor, TemporalAdjuster
DayOfWeek
是一周的星期一,星期二,星期三,星期四,星期五,星期六和星期日的星期几的星期几。
除了文本枚举名称,每个星期的每一天都有一个int
值。 int
价格遵循ISO-8601标准,从1(星期一)到7(星期日)。 建议应用程序使用枚举而不是int
值来确保代码清晰。
该枚举提供访问星期几本地化的文本形式。 某些区域设置也会为日期分配不同的数值,并将星号表示为值1,但此类不提供此参数。 有关本地化的星期编号 ,请参阅WeekFields
。
请勿使用ordinal()
获取DayOfWeek的数字DayOfWeek
。 改用getValue()
。
该枚举代表了许多日历系统中发现的常见概念。 因此,该枚举可以被任何具有与ISO日历系统完全相同的星期概念定义的日历系统使用。
Enum Constant and Description |
---|
FRIDAY
星期五的单日例子。
|
MONDAY
星期一星期几的单身人士例子。
|
SATURDAY
星期六的单日例子。
|
SUNDAY
星期天的星期几的单身人士例子。
|
THURSDAY
星期四的单日例子。
|
TUESDAY
星期二星期几的单身人士例子。
|
WEDNESDAY
星期三的星期几的单身人士例子。
|
Modifier and Type | Method and Description |
---|---|
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()
按照它们声明的顺序返回一个包含此枚举类型常量的数组。
|
public static final DayOfWeek MONDAY
1
。
public static final DayOfWeek TUESDAY
2
。
public static final DayOfWeek WEDNESDAY
3
。
public static final DayOfWeek THURSDAY
4
。
public static final DayOfWeek FRIDAY
5
。
public static final DayOfWeek SATURDAY
6
。
public static final DayOfWeek SUNDAY
7
。
public static DayOfWeek[] values()
for (DayOfWeek c : DayOfWeek.values())
System.out.println(c);
public static DayOfWeek valueOf(String name)
name
- 要返回的枚举常数的名称。
IllegalArgumentException
- 如果此枚举类型没有指定名称的常量
NullPointerException
- 如果参数为空
public static DayOfWeek of(int dayOfWeek)
int
获得DayOfWeek
一个实例。
DayOfWeek
是一个枚举,代表一周的7天。 该工厂允许从int
获得枚举。 int
价格遵循ISO-8601标准,从1(星期一)到7(星期日)。
dayOfWeek
- 代表从1(星期一)到7(星期日)的星期几
DateTimeException
- 如果星期几无效
public static DayOfWeek from(TemporalAccessor temporal)
DayOfWeek
的实例。
这取决于指定时间的星期几。 A TemporalAccessor
表示一个任意的日期和时间信息集,该工厂转换为DayOfWeek
一个实例。
该转换提取了DAY_OF_WEEK
字段。
该方法中,功能接口的签名相匹配TemporalQuery
允许它被用作通过方法参考,查询DayOfWeek::from
。
temporal
- 要转换的时间对象,不为null
DateTimeException
- 如果无法转换为
DayOfWeek
public int getValue()
int
价值。
这些值按照ISO-8601标准编号,从1(星期一)到7(星期日)。 请参阅WeekFields.dayOfWeek
本地化周编号。
public String getDisplayName(TextStyle style, Locale locale)
style
- 所需文本的长度,不为空
locale
- 要使用的语言环境,不为空
public boolean isSupported(TemporalField field)
这将检查是否可以查询指定字段的星期几。 如果是false,那么调用range
和get
方法会抛出异常。
如果该字段为DAY_OF_WEEK
,则此方法返回true。 所有其他ChronoField
实例将返回false。
如果该字段不是ChronoField
,则该方法的结果是通过调用TemporalField.isSupportedBy(TemporalAccessor)
this
作为参数的this
获得的。 字段是否受支持由字段决定。
isSupported
在界面
TemporalAccessor
field
- 要检查的字段,null返回false
public ValueRange range(TemporalField field)
范围对象表示字段的最小和最大有效值。 这个星期几用于提高返回范围的准确性。 如果不可能返回范围,因为该字段不受支持或出于某种其他原因,则抛出异常。
如果字段为DAY_OF_WEEK
,那么将返回从1到7的星期几的范围。 所有其他ChronoField
实例将抛出一个UnsupportedTemporalTypeException
。
如果该字段是不是一个ChronoField
,则此方法的结果是通过调用获得TemporalField.rangeRefinedBy(TemporalAccessor)
传递this
作为参数。 是否可以获得范围由字段确定。
range
在接口
TemporalAccessor
field
- 查询范围的字段,不为null
DateTimeException
- 如果无法获取字段的范围
UnsupportedTemporalTypeException
- 如果该字段不被支持
public int get(TemporalField field)
int
。
这将查询指定字段的值的星期几。 返回的值将始终在该字段的值的有效范围内。 如果不可能返回值,因为该字段不受支持或出于某种其他原因,则抛出异常。
如果字段为DAY_OF_WEEK
,那么将返回从1到7的星期几的值。 所有其他ChronoField
实例将抛出一个UnsupportedTemporalTypeException
。
如果该字段是不是一个ChronoField
,则此方法的结果是通过调用获得TemporalField.getFrom(TemporalAccessor)
传递this
作为参数。 该值是否可以获得,该值代表什么值由该字段决定。
get
在界面
TemporalAccessor
field
- 要获取的字段,不为null
DateTimeException
- 如果字段的值无法获取或该值超出了该字段的有效值的范围
UnsupportedTemporalTypeException
- 如果字段不受支持或值的范围超过
int
ArithmeticException
- 如果发生数字溢出
public long getLong(TemporalField field)
long
。
这将查询指定字段的值的星期几。 如果不可能返回值,因为该字段不受支持或出于某种其他原因,则抛出异常。
如果字段为DAY_OF_WEEK
,则将返回从1到7的星期几。 所有其他ChronoField
实例都会抛出一个UnsupportedTemporalTypeException
。
如果该字段是不是一个ChronoField
,则此方法的结果是通过调用获得TemporalField.getFrom(TemporalAccessor)
传递this
作为参数。 该值是否可以获得,该值代表什么值由该字段决定。
getLong
在界面
TemporalAccessor
field
- 要获取的字段,不为空
DateTimeException
- 如果无法获取该字段的值
UnsupportedTemporalTypeException
- 如果该字段不被支持
ArithmeticException
- 如果发生数字溢出
public DayOfWeek plus(long days)
周末到周一,周末的计算结束。 指定期间可能为负。
此实例是不可变的,不受此方法调用的影响。
days
- 正或负的日子
public DayOfWeek minus(long days)
计算周一至周日从年初开始计算。 指定期间可能为负。
此实例是不可变的,不受此方法调用的影响。
days
- 减去正数或负数的日期
public <R> R query(TemporalQuery<R> query)
这使用指定的查询策略对象来查询这个星期几。 TemporalQuery
对象定义了用于获取结果的逻辑。 阅读查询的文档,以了解该方法的结果。
该方法的结果是通过在指定的查询this
作为参数调用TemporalQuery.queryFrom(TemporalAccessor)
方法获得的。
query
在接口
TemporalAccessor
R
- 结果的类型
query
- 要调用的查询,不为null
DateTimeException
- 如果无法查询(由查询定义)
ArithmeticException
- 如果发生数字溢出(由查询定义)
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
此实例是不可变的,不受此方法调用的影响。
adjustInto
在界面
TemporalAdjuster
temporal
- 要调整的目标对象,不为null
DateTimeException
- 如果无法进行调整
ArithmeticException
- 如果发生数字溢出