Java DayOfWeek 将日期名称(字符串)转换为日期编号

Java DayOfWeek convert Day Name (String) to Day Number

我正在尝试将工作日的字符串值转换为数字。

我正在调查 Enum DayOfWeek (https://docs.oracle.com/javase/8/docs/api/java/time/DayOfWeek.html),但它没有按我预期的方式工作。

代码

String n = "MONDAY";

System.out.println(n); //prints MONDAY
System.out.println(DayOfWeek.valueOf(n)); //also prints MONDAY - should print 1

如何从我的字符串中获取相应的数字?

DayOfWeek

这里需要获取day-of-week int值。为此,您需要使用 DayOfWeek.valueOf and DayOfWeek::getValue(). This works if your string inputs use the full English name of the day of week, as used on the DayOfWeek 枚举对象。

 System.out.println(DayOfWeek.valueOf(n).getValue());

它 returns 星期几,从 1(星期一)到 7(星期日)。

at the JavaDoc. Use getValue:

Gets the day-of-week int value.

The values are numbered following the ISO-8601 standard, from 1 (Monday) to 7 (Sunday).

你的情况

System.out.println(DayOfWeek.valueOf(n).getValue());

DayOfWeek 是一个不覆盖 toString 的枚举,因此默认行为是打印枚举常量的名称,即 'MONDAY'。这就是为什么您会看到这种行为。