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

问题描述 投票:3回答:2

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

我正在调查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

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

java java-time dayofweek
2个回答
6
投票

DayOfWeek

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

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

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


4
投票

看看at the JavaDoc。使用getValue

获取星期int值。 这些值按照ISO-8601标准编号,从1(星期一)到7(星期日)。

在你的情况下

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

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

© www.soinside.com 2019 - 2024. All rights reserved.