Module  java.base
软件包  java.time

Enum DayOfWeek

  • All Implemented Interfaces:
    SerializableComparable<DayOfWeek>TemporalAccessorTemporalAdjuster


    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
    • 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)
        获取文本表示,如“星期一”或“星期五”。

        这将返回用于标识星期几的文字名称,适合向用户呈现。 参数控制返回的文本和区域设置的样式。

        如果没有发现文本映射,则返回numeric value

        参数
        style - 所需文本的长度,不为空
        locale - 要使用的语言环境,不为空
        结果
        星期几的文本值不为null
      • isSupported

        public boolean isSupported​(TemporalField field)
        检查指定的字段是否受支持。

        这将检查是否可以查询指定字段的星期几。 如果是false,那么调用rangeget方法会抛出异常。

        如果该字段为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 - 如果发生数字溢出