Android 将日期从一种格式转换为另一种格式会导致异常
我得到的日期格式如下: 星期五2月28日00:00:00 GMT+2020年1:00 我需要将此日期转换为格式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(日期); }捕获(例外情况除
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,我得到了同样的例外你想要大写字母myyyy-MM-dd
@Blundell,你使用这个新的简化格式是对的(“EEE-MMM-dd-HH:MM:ss-ZZZZ-yyyy”)@shahzainali,让我查一查it@shahzainali,我得到了相同的例外情况您想要大写字母myyy-MM-dd
@Blundell,您是对的。您是对的,错误不在转换上,而是在字符串日期。您是对的,错误不在转换上,而是在字符串日期。