我正在尝试访问我创建的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");
我得到一个空指针异常。
这怎么可能?
答案 0 :(得分: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
块退出。
(说完了所有这些,我不会期望该代码抛出异常。它不会给你你想要的值,但实际解析应该没问题。 ..如果你能够制作一个简短但完整的程序来证明这个问题,那真的会有所帮助。)
答案 1 :(得分:0)
请改用:
Utils.convertToDate("03-04-2012", "MM-dd-yyyy");
因为mm
代表分钟,而MM
代表月份。