Android 将日期从一种格式转换为另一种格式会导致异常

Android 将日期从一种格式转换为另一种格式会导致异常,android,simpledateformat,Android,Simpledateformat,我得到的日期格式如下: 星期五2月28日00:00:00 GMT+2020年1:00 我需要将此日期转换为格式yyyy-mm-dd 要获得此格式转换,我将执行以下操作: String date=dateClicked.toString(); SimpleDataFormat sdf=新的SimpleDataFormat(“EEE MMM dd HH:mm:ss zzzz yyyy”); 日期testDate=null; 试一试{ testDate=sdf.parse(日期); }捕获(例外情况除

我得到的日期格式如下:

星期五2月28日00:00:00 GMT+2020年1:00

我需要将此日期转换为格式
yyyy-mm-dd

要获得此格式转换,我将执行以下操作:

String date=dateClicked.toString();
SimpleDataFormat sdf=新的SimpleDataFormat(“EEE MMM dd HH:mm:ss zzzz yyyy”);
日期testDate=null;
试一试{
testDate=sdf.parse(日期);
}捕获(例外情况除外){
例如printStackTrace();
}
SimpleDataFormat格式化程序=新的SimpleDataFormat(“yyyy-mm-dd”);
字符串newFormat=formatter.format(testDate);
System.out.println(“…直径脉冲发生器…”+新格式);
我在第
stringnewformat=formatter.format(testDate)行遇到以下异常

这是异常消息:
java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“long java.util.Date.getTime()”


我猜错误就在这里:
newsimpledateformat(“EEE-MMM-dd-HH:mm:ss-zz-yyyy”)

我已经在我这边进行了测试,这段代码工作得非常好

import android.os.Bundle;

import java.text.SimpleDateFormat;
import java.util.Date;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String date = "Fri Mar 28 00:00:00 GMT+01:00 2020";

        SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy");

        Date testDate = null;
        try {
            testDate = sdf.parse(date);
        }catch(Exception ex){
            ex.printStackTrace();
        }
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        String newFormat = formatter.format(testDate);
        System.out.println(".....dia pulsado..."+newFormat);

    }
}
这是日志

I/System.out: .....dia pulsado...2020-03-28

我已经在我这边测试过了,这段代码运行得很好

import android.os.Bundle;

import java.text.SimpleDateFormat;
import java.util.Date;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String date = "Fri Mar 28 00:00:00 GMT+01:00 2020";

        SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy");

        Date testDate = null;
        try {
            testDate = sdf.parse(date);
        }catch(Exception ex){
            ex.printStackTrace();
        }
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        String newFormat = formatter.format(testDate);
        System.out.println(".....dia pulsado..."+newFormat);

    }
}
这是日志

I/System.out: .....dia pulsado...2020-03-28

使用此新的SimpleDataFormat(“EEE MMM dd HH:mm:ss ZZZZ yyyy”)@shahzainali,让我查一查it@shahzainali,我得到了同样的例外你想要大写字母m
yyyy-MM-dd
@Blundell,你使用这个新的简化格式是对的(“EEE-MMM-dd-HH:MM:ss-ZZZZ-yyyy”)@shahzainali,让我查一查it@shahzainali,我得到了相同的例外情况您想要大写字母m
yyy-MM-dd
@Blundell,您是对的。您是对的,错误不在转换上,而是在字符串日期。您是对的,错误不在转换上,而是在字符串日期。