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

时间:2018-06-18 15:09:13

标签: java java-time dayofweek

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

我正在调查Enum DayOfWeekhttps://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

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

2 个答案:

答案 0 :(得分:6)

DayOfWeek

在这里,您需要获取星期的int值。为此,您需要使用DayOfWeek.valueOfDayOfWeek::getValue()。如果您的字符串输入使用DayOfWeek枚举对象上使用的星期几的完整英文名称,则此方法有效。

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

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

答案 1 :(得分:4)

at the JavaDoc。使用getValue

  

获取星期的int值。

数值按照后面的数字编号   ISO-8601标准,从1(星期一)到7(星期日)。

在你的情况下

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

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