在java.time.DayOfWeekJava中8日期时间API枚举描述了一周的日子。枚举具有从DayOfWeek.MONDAY到的常量值DayOfWeek.SUNDAY。这些枚举也具有其1等于MONDAY和7等于的整数值SUNDAY。
在下面的代码片段中,您可以看到一些DayOfWeek枚举的用法。我们首先使用values()返回的数组的方法获取所有枚举值DayOfWeek。我们迭代此数组并打印出枚举值及其对应的整数值。
// 获取DayOfWeek枚举值
DayOfWeek[] dayOfWeeks = DayOfWeek.values();
for (int i = 0; i < dayOfWeeks.length; i++) {
DayOfWeek dayOfWeek = dayOfWeeks[i];
System.out.println("dayOfWeek[" + i + "] = " + dayOfWeek + "; value = " +
dayOfWeek.getValue());
}要创建DayOfWeek对象,我们可以使用of(int)工厂方法。我们传递此方法的整数值。例如,给予1将给我们带来收益DayOfWeek.MONDAY。我们还可以利用枚举valueOf(String)方法从字符串值创建枚举。
// 从int值获取DayOfWeek
DayOfWeek dayOfWeek = DayOfWeek.of(1);
System.out.println("dayOfWeek = " + dayOfWeek);
// 从字符串值获取DayOfWeek
dayOfWeek = DayOfWeek.valueOf("SATURDAY");
System.out.println("dayOfWeek = " + dayOfWeek);要从DayOfWeek日期时间对象获取,我们可以使用getDayOfWeek()方法。在下面,我们从一个LocalDate对象获取星期几。
// 获取日期对象的DayOfWeek
LocalDate date = LocalDate.now();
DayOfWeek dow = date.getDayOfWeek();
System.out.println("Date = " + date);
System.out.println("Dow = " + dow + "; value = " + dow.getValue());我们还可以获取特定语言环境的星期几。为此,我们可以使用该DayOfWeek.getDisplayName(TextStyle, Locale)方法。该TextStyle可以是有价值的TextStyle.FULL,TextStyle.SHORT,TextStyle.NARROW这将给我们充分,短,窄版的显示名称。下面的示例获取印度尼西亚语和德语版本的显示名称。
// 获取不同语言环境的DayOfWeek显示名称。
Locale locale = new Locale("id", "ID");
String indonesian = dow.getDisplayName(TextStyle.SHORT, locale);
System.out.println("ID = " + indonesian);
String germany = dow.getDisplayName(TextStyle.FULL, Locale.GERMANY);
System.out.println("DE = " + germany);还有plus(long)一种可用于增加DayOfWeek对象天数的方法。例如,加4MONDAY将给我们DayOfWeek.FRIDAY。
// 将天数添加到DayOfWeek枚举中。
System.out.println("DayOfWeek.MONDAY.plus(4) = " + DayOfWeek.MONDAY.plus(4));这是上述代码段的完整代码:
package org.nhooo.example.datetime;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.TextStyle;
import java.util.Locale;
public class DayOffWeekExample {
public static void main(String[] args) {
// 获取DayOfWeek枚举值
DayOfWeek[] dayOfWeeks = DayOfWeek.values();
for (int i = 0; i < dayOfWeeks.length; i++) {
DayOfWeek dayOfWeek = dayOfWeeks[i];
System.out.println("dayOfWeek[" + i + "] = " + dayOfWeek + "; value = " +
dayOfWeek.getValue());
}
// 从int值获取DayOfWeek
DayOfWeek dayOfWeek = DayOfWeek.of(1);
System.out.println("dayOfWeek = " + dayOfWeek);
// 从字符串值获取DayOfWeek
dayOfWeek = DayOfWeek.valueOf("SATURDAY");
System.out.println("dayOfWeek = " + dayOfWeek);
// 获取日期对象的DayOfWeek
LocalDate date = LocalDate.now();
DayOfWeek dow = date.getDayOfWeek();
System.out.println("Date = " + date);
System.out.println("Dow = " + dow + "; value = " + dow.getValue());
// 获取不同语言环境的DayOfWeek显示名称。
Locale locale = new Locale("id", "ID");
String indonesian = dow.getDisplayName(TextStyle.SHORT, locale);
System.out.println("ID = " + indonesian);
String germany = dow.getDisplayName(TextStyle.FULL, Locale.GERMANY);
System.out.println("DE = " + germany);
// 将天数添加到DayOfWeek枚举中。
System.out.println("DayOfWeek.MONDAY.plus(4) = " + DayOfWeek.MONDAY.plus(4));
}
}上面代码的结果是:
dayOfWeek[0] = MONDAY; value = 1 dayOfWeek[1] = TUESDAY; value = 2 dayOfWeek[2] = WEDNESDAY; value = 3 dayOfWeek[3] = THURSDAY; value = 4 dayOfWeek[4] = FRIDAY; value = 5 dayOfWeek[5] = SATURDAY; value = 6 dayOfWeek[6] = SUNDAY; value = 7 dayOfWeek = MONDAY dayOfWeek = SATURDAY Date = 2015-11-16 Dow = MONDAY; value = 1 ID = Sen DE = Montag DayOfWeek.MONDAY.plus(4) = FRIDAY