-1

我正在尝试访问我创建的 Utils 类中的静态方法:

 public class Utils{

 public static Date convertToDate(String dateString, String dFormat){

    SimpleDateFormat dateFormat = new SimpleDateFormat(dFormat, Locale.US);

    Date convertedDate;
    try {
        convertedDate = dateFormat.parse(dateString);
        Log.i("date", "convertedDate =  " + convertedDate);

    } catch (ParseException e) {
        e.printStackTrace();
        return null;
    }

    return convertedDate;

}
 }

当我尝试像这样访问此方法时:

 Utils.convertToDate("03-04-2012", "mm-dd-yyyy");

我得到一个空指针异常。

这怎么可能???

4

2 回答 2

4

我的猜测是抛出异常的不是那个方法-而是它返回 null 并且您正在使用返回值的事实,如下所示:

Date date = Utils.convertToDate("03-04-2012", "mm-dd-yyyy");
System.out.println(date.toString());

这就是有效地吞下异常并假装没有问题的问题。请注意,您的格式应该是“MM-dd-yyyy”而不是“mm-dd-yyyy”。convertedDate另请注意,如果您在try块中声明并返回它,而不是在返回之前等待从块中出来,您的代码会更简单try

(说了这么多,我没想到代码会抛出异常。它不会给你想要的值,但实际解析应该没问题......如果你能产生一个简短但完整的演示问题的程序,这真的很有帮助。)

于 2012-04-05T18:10:52.150 回答
0

改用这个:

Utils.convertToDate("03-04-2012", "MM-dd-yyyy");

sincemm代表分钟,whileMM代表月份。

于 2012-04-05T18:11:56.480 回答