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'。这就是为什么您会看到这种行为。
我正在尝试将工作日的字符串值转换为数字。
我正在调查 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'。这就是为什么您会看到这种行为。