将字符串(日期)转换为毫秒时遇到困难 java

Difficulty while converting string(date) to milliseconds In java

我有以下代码。我正在传递 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); ^

我该如何纠正这个问题?而且,为什么它向我显示此错误?

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;
}