【问题标题】:Java DayOfWeek convert Day Name (String) to Day NumberJava DayOfWeek 将日期名称(字符串)转换为日期编号
【发布时间】:2018-11-27 11:32:37
【问题描述】:

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

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

我怎样才能从我的字符串中获取相应的数字?

【问题讨论】:

    标签: java java-time dayofweek


    【解决方案1】:

    DayOfWeek

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

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

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

    【讨论】:

      【解决方案2】:

      at the JavaDoc。使用getValue

      获取星期几的 int 值。

      这些值在 ISO-8601 标准,从 1(星期一)到 7(星期日)。

      你的情况

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

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

      【讨论】:

        猜你喜欢
        • 2016-10-17
        • 2011-06-13
        • 1970-01-01
        • 2012-03-17
        • 1970-01-01
        • 2011-11-28
        • 2016-09-07
        • 1970-01-01
        相关资源
        最近更新 更多