将字符串(日期)转换为毫秒时遇到困难 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;
}
我有以下代码。我正在传递 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;
}