如何在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 楼答案
使用格式化程序:
解析成一周中的一天
这将产生:
DayOfWeek
枚举代表一周中的7天。一旦在代码中把一周中的某一天作为这样一个对象,那么获取前一天就很简单了(如果您知道该怎么做的话):它在一周的所有日子都有效;当我们到达一周的开始(在这个enum声明中是星期一),减法返回到一周的结束(星期日)
如果需要,可以从顶部使用格式化程序将枚举实例格式化回字符串以供显示:
没有理由在自己的代码中硬编码日期名称。Java已经知道许多语言中的名称和常用缩写
您也没有理由想使用
Calendar
类,无论是在这种情况下还是在其他情况下。它并不真正适合你的用例。它的设计总是很糟糕,现在已经过时很久了。而是使用java。time是DayOfWeek
所属的现代Java日期和时间API,适用于所有日期和时间工作链接