# Java 8 – `DayOfWeek`

> 原文： [https://howtodoinjava.com/java/date-time/find-dayofweek/](https://howtodoinjava.com/java/date-time/find-dayofweek/)

Java 示例，用于确定星期几是给定日期。 工作日为星期日，星期一至星期六。

## 1\. `DayOfWeek`枚举

[`DayOfWeek`](https://docs.oracle.com/javase/8/docs/api/java/time/DayOfWeek.html)是代表一周中七天的枚举 - 星期一，星期二，星期三，星期四，星期五，星期六和星期日。

由于它是一个枚举，因此具有与每天相关的序数值。 从 1（星期一）到 7（星期日）。 某些语言环境还为日期分配了不同的数值，从而声明星期日为 1。但是，此类不支持此特性。

要获得数字表示，建议使用`getValue()`。 这是一个[**不可变的**](https://howtodoinjava.com/java/basics/how-to-make-a-java-class-immutable/)和[**线程安全**](https://howtodoinjava.com/java/multi-threading/what-is-thread-safety/)枚举。

## 2\. 给定`LocalDate`的`DayOfWeek`

`LocalDate`类具有方法`getDayOfWeek()`，该方法返回表示星期几的枚举值。

```java
LocalDate today = LocalDate.now();

System.out.println( today.getDayOfWeek() );				// SUNDAY
System.out.println( today.getDayOfWeek().getValue() );	// 7

```

类似于`LocalDate`，其他时间类别也提供此方法。

*   [`LocalDate.getDayOfWeek()`](https://howtodoinjava.com/java/date-time/java-time-localdate-class/) 
*   [`LocalDateTime.getDayOfWeek()`](https://howtodoinjava.com/java/date-time/java-localdatetime-class/) 
*   [`ZonedDateTime.getDayOfWeek()`](https://howtodoinjava.com/java/date-time/zoneddatetime-class/) 

## 3\. 特定于语言环境的值

使用`getDisplayName(TextStyle, Locale)`以特定于语言环境的方式获取星期几的值。

```java
public static void main(String[] args) 
{	
	String textValue = getDayString(today, Locale.getDefault());

	System.out.println(textValue);			// Sunday

	textValue = getDayString(today, Locale.GERMAN);

	System.out.println(textValue);			// Sonntag
}

public static String getDayString(LocalDate date, Locale locale) 
{
    DayOfWeek day = date.getDayOfWeek();
    return day.getDisplayName(TextStyle.FULL, locale);
}

```

将有关 Java 8 中星期几的**的问题交给我**。

学习愉快！

[下载源码](https://github.com/lokeshgupta1981/Core-Java/tree/master/src/com/howtodoinjava/core/datetime)