这个问题在这里已有答案:
DateFormat d1;
d1 = new SimpleDateFormat("dd-MMMM-yyyy");
public String duedate = "20-April.2019";
Date du = d1.parse(duedate);
我一直得到的错误是:
默认构造函数无法处理隐式超级构造函数抛出的异常类型ParseException。必须定义一个显式构造函数
它应该只有三个'M'。
d1 = new SimpleDateFormat("dd-MMM-yyyy");
并且日期不应该有点。
String duedate = "20-April-2019";
Date du = d1.parse(duedate);
首先,dateFormat和duedate必须对应,所以如果你的dateFormat使用短划线,那么duedate就不能使用点
String duedate = "20-April-2019";
其次你必须考虑ParseException错误,所以你必须用try / catch包围Date的声明,如下所示:
try{
Date du = d1.parse(duedate);
} catch(ParseException e){
e.printStackTrace();
}
您可以在此处找到有关如何使用SimpleDateFormat解析日期字符串的信息:https://docs.oracle.com/javase/10/docs/api/java/text/SimpleDateFormat.html
出现错误,因为您的日期格式字符串与您尝试解析的日期字符串不匹配。