Java SimpleDataFormat分析上的空指针异常
我从日历中获取日期,并使用Java SimpleDataFormat分析上的空指针异常,java,android,nullpointerexception,simpledateformat,Java,Android,Nullpointerexception,Simpledateformat,我从日历中获取日期,并使用 SimpleDateFormat sdf1 = new SimpleDateFormat("MM/dd/yyyy"); Date date = null; try { date = sdf1.parse(datevalue); } catch (ParseException e) { e.printStackTrace(); } if(date != null) { Da
SimpleDateFormat sdf1 = new SimpleDateFormat("MM/dd/yyyy");
Date date = null;
try {
date = sdf1.parse(datevalue);
} catch (ParseException e) {
e.printStackTrace();
}
if(date != null) {
Date d = new Date(date.getTime());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
return sdf.format(d);
}
return "";
但我在一些设备上遇到了崩溃,对于一些设备,它工作正常。
我不知道为什么它只发生在一些设备上
我在Fabric报告中了解到:
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1044)
at java.text.DateFormat.parse(DateFormat.java:577)
at com.app.appUtilities.Utilities.convertDateFormat(Utilities.java:34)
请帮助我。datevalue在某些情况下显然是空的。您在第二行为日期引用指定了空。它在第三行初始化,您可以看到您是否有任何公平的答案comment@paraskochar正如芭丝谢芭所说,dateValue在某些情况下是空的。这是一个简单的NPE,你所要做的就是确保它不是空的@Sufain我正在从用户处获取mm/dd/yyyy格式的日期,并将其转换为yyyy-mm-dd'T'HH:mm:ss.SSSZ格式如何为null公共静态字符串convertDateFormatString datevalue{SimpleDateFormat sdf1=new SimpleDateFormatMM/dd/yyyy;date-date=null;尝试{date=sdf1.parsedatevalue;}捕获异常Parsee{e.printStackTrace;}ifdate!=null{Date d=new Datedate.getTime;SimpleDateFormat sdf=new SimpleDateFormatyyyy MM dd'HH:MM:ss.SSSZ;return sdf.formatd;}return;}SimpleDateFormat sdf1=new SimpleDateFormatm/dd/yyyyy;日期日期=null;尝试{Date=sdf1.parsedatevalue;}捕捉异常Parsee{e.printStackTrace;}ifdate!=null{Date d=new datedatedate.getTime;SimpleDateFormat sdf=new SimpleDateFormatyyyy MM dd'HH:MM:ss.SSSZ;return sdf.formatd;}return;
String dateStr = "04/05/2010";
SimpleDateFormat curFormater = new SimpleDateFormat("dd/MM/yyyy");
try {
dateObj = curFormater.parse(dateStr);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SimpleDateFormat postFormater = new SimpleDateFormat("MMMM dd, yyyy");
String newDateStr = postFormater.format(dateObj);
Toast.makeText(getApplicationContext(), newDateStr, 1).show();