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();