JAVA设计一个方法,给定任意形如"2000-01-01"的字符串,获得对应的星期,分别使用Calendar、LocalDate 实现。
时间: 2024-12-25 10:27:41 浏览: 4
在Java中,你可以使用`java.util.Calendar`和`java.time.LocalDate`两个类来实现这个功能。下面是两种方法的示例:
**使用`Calendar`实现:**
```java
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class DateUtils {
public String getWeekDayByString(String dateString) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Calendar calendar = Calendar.getInstance();
calendar.setTime(sdf.parse(dateString));
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
switch (dayOfWeek) {
case Calendar.MONDAY:
return "星期一";
// 添加其他天数的对应翻译...
default:
return "未知";
}
} catch (Exception e) {
return "日期解析错误";
}
}
public static void main(String[] args) {
DateUtils utils = new DateUtils();
System.out.println(utils.getWeekDayByString("2000-01-01"));
}
}
```
**使用`LocalDate`实现:**
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class DateUtils {
public String getWeekDayByString(String dateString) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
try {
LocalDate date = LocalDate.parse(dateString, formatter);
DayOfWeek dayOfWeek = date.getDayOfWeek();
return dayOfWeek.toString(); // Java 8及以后可以直接返回英文名称
} catch (DateTimeParseException e) {
return "日期解析错误";
}
}
public static void main(String[] args) {
DateUtils utils = new DateUtils();
System.out.println(utils.getWeekDayByString("2000-01-01"));
}
}
```
在这两个例子中,我们首先通过`SimpleDateFormat`或`DateTimeFormatter`将字符串转换成`Calendar`或`LocalDate`对象,然后获取该日期对应的星期。
阅读全文