编写一个方法将格式为"yyyy/mm/dd"形式的日期转化为日期类型,如果日期数据非法,则抛出异常。对正常和异常的输入串分别进行验证,输出转换后的日期对象。
时间: 2024-11-25 12:20:35 浏览: 5
在Java中,你可以编写一个`parseDate`方法来实现这个功能。这里是一个简单的示例:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateParser {
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy/MM/dd");
public static Date parse(String input) throws ParseException {
// 验证输入是否符合格式
if (input == null || input.isEmpty() || !DATE_FORMAT.matcher(input).matches()) {
throw new IllegalArgumentException("Invalid date format. Expected 'yyyy/mm/dd'.");
}
// 尝试转换日期
return DATE_FORMAT.parse(input);
}
public static void main(String[] args) {
try {
String validInput = "2023/03/28";
Date parsedDate = parse(validInput);
System.out.println("Parsed date: " + parsedDate); // 输出转换后的日期
// 对于非法输入,抛出异常
String invalidInput = "2023/02/31";
parse(invalidInput); // 这里会抛出ParseException
} catch (ParseException e) {
e.printStackTrace();
}
}
}
```
在这个例子中,我们首先创建了一个`SimpleDateFormat`对象,它指定了期望的日期格式。然后我们在`parse`方法中检查输入是否匹配该格式。如果匹配,我们就尝试通过`parse`方法将其转换为`Date`对象;如果不匹配,就抛出一个`ParseException`。
在`main`方法中,我们展示了如何处理正常和异常的输入情况。
阅读全文