有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在java中将字符串转换为工作日?

我有一个字符串值,比如“wed”、“mon”、“thu”。。。我想从这个值中减去1天。预计输出为“周二”、“周日”、“周三”。如何在Java8中实现这一点

我能在本周完成这项工作。但如果我传递一个字符串,就不会得到它

Calendar now = Calendar.getInstance();
    System.out.println("Current date : " + (now.get(Calendar.MONTH) + 1) + "-"
            + now.get(Calendar.DATE) + "-" + now.get(Calendar.YEAR));

    String[] strDays = new String[] { "Sunday", "Monday", "Tuesday", "Wednesday", "Thusday",
            "Friday", "Saturday" };
    System.out.println("Current day is : " + strDays[now.get(Calendar.DAY_OF_WEEK) - 1]);

输入:“星期三”、“星期一”、“星期四” 所需输出:“周二”、“周日”、“周三”


共 (1) 个答案

  1. # 1 楼答案

    how convert string to a weekday in java?

    使用格式化程序:

    static DateTimeFormatter dowFormatter = new DateTimeFormatterBuilder()
            .parseCaseInsensitive()
            .appendPattern("EEE")
            .toFormatter(Locale.ENGLISH);
    

    解析成一周中的一天

        String dowString = "wed";
        DayOfWeek dow = DayOfWeek.from(dowFormatter.parse(dowString));
        System.out.println(dow);
    

    这将产生:

    WEDNESDAY

    DayOfWeek枚举代表一周中的7天。一旦在代码中把一周中的某一天作为这样一个对象,那么获取前一天就很简单了(如果您知道该怎么做的话):

        DayOfWeek currentDow = dow.minus(1);
        System.out.println("Current day is : " + currentDow);
    

    Current day is : TUESDAY

    它在一周的所有日子都有效;当我们到达一周的开始(在这个enum声明中是星期一),减法返回到一周的结束(星期日)

    如果需要,可以从顶部使用格式化程序将枚举实例格式化回字符串以供显示:

        String currentDowString = dowFormatter.format(currentDow);
        System.out.println("Current day is : " + currentDowString);
    

    Current day is : Tue

    没有理由在自己的代码中硬编码日期名称。Java已经知道许多语言中的名称和常用缩写

    您也没有理由想使用Calendar类,无论是在这种情况下还是在其他情况下。它并不真正适合你的用例。它的设计总是很糟糕,现在已经过时很久了。而是使用java。time是DayOfWeek所属的现代Java日期和时间API,适用于所有日期和时间工作

    链接