无法将String转换为Date

Tom*_*ett 0 java

我无法将字符串转换为Java中的日期,我无法弄明白.

String sdate1 = "01/04/2016";
SimpleDateFormat  dateformat = new SimpleDateFormat("dd/MM/yyyy");  
Date date1 = dateformat.parse(sdate1);
Run Code Online (Sandbox Code Playgroud)

最后一行导致错误,这迫使我用try/catch包围它.

使用try/catch包围这会导致date1在以后尝试打印变量时导致错误.错误状态'本地变量date1可能尚未初始化'.

Date date1;
try {
    date1 = dateformat.parse(sdate1);
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

从互联网上的一些挖掘中,我认为这表明该变量未通过尝试.但是,我看不出它怎么可能失败.

Rom*_*kiy 6

date1在你的情况下没有明确赋值变量(如果因为catch子句没有为变量赋值而抛出异常,它将不会获得任何值),因此你以后不能使用它(例如,打印).

要解决此问题,您可以为变量赋予一些初始值:

Date date1 = null;
try {
    date1 = dateformat.parse(sdate1);
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
if (date1 != null) {
    // it was parsed successfully
    .. do something with it
}
Run Code Online (Sandbox Code Playgroud)