①编写白定义异常类WrongDateException,以描述错误的日期宇符串,如
2011-10-32、2013-02-31等。
②编写一个convert方法将文本框中的字符串(约定以“4位年-2位月-2位 日〞的格式)转换为日期(java.util.Date)对象,并在点击转换按钮时调用该方
法。 ◎若转换成功,则将得到的日期对象以“xxXX年xX月xx日”的格式作为
窗口下部标签的内容。
④若转换失败,则convert方法抛出WrongDateException异常。
⑤在调用convert方法的方法中捕获WrongDateException异常,并在下
~ 25 ~
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateConverter {
public static void main(String[] args) {
// 在转换按钮点击时调用convert方法
try {
String dateString = "2011-10-32"; // 从文本框获取的日期字符串
Date date = convert(dateString);
// 转换成功
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
String formattedDate = sdf.format(date);
System.out.println("转换结果:" + formattedDate);
} catch (WrongDateException e) {
// 转换失败,捕获WrongDateException异常
System.out.println("转换失败:" + e.getMessage());
}
}
public static Date convert(String dateString) throws WrongDateException {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 解析日期字符串
Date date = sdf.parse(dateString);
// 校验日期是否和原字符串一致
if (!sdf.format(date).equals(dateString)) {
throw new WrongDateException("错误的日期字符串");
}
return date;
} catch (Exception e) {
throw new WrongDateException("错误的日期字符串");
}
}
}
class WrongDateException extends Exception {
public WrongDateException(String message) {
super(message);
}
}