我有以下代码。我正在通过start = "2016/01/01 23:59:59"
和end = "2017/01/01 23:59:59"
func(String start, String end) {
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date1 = sdf1.parse(start);
long startTime = date1.getTime();
\\System.out.println(startTime);
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date2 = sdf2.parse(end);
long endTime = date2.getTime();
\\System.out.println(endTime);
}
我遇到以下错误
error: unreported exception ParseException; must be caught or declared to be thrown
Date date = sdf.parse(time);
^
我该如何纠正?而且,为什么它会向我显示此错误?
答案 0 :(得分:1)
DateFormat#parse()
方法抛出一个ParseException
。这意味着,如果将字符串解析为日期时出了点问题,则可能会抛出此异常。
一种解决方法是仅声明您的方法来引发此异常,例如
public long yourMethod() throws ParseException {
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date1 = sdf1.parse(start);
long startTime = date1.getTime();
return startTime;
}
或者,也可以从错误消息中获取建议,您可以将代码放入try catch
块中:
public long yourMethod() {
long startTime = -1L;
try {
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date1 = sdf1.parse(start);
startTime = date1.getTime();
}
catch (ParseException e) {
// something went wrong
}
return startTime;
}