我试图将字符串转换为日期,但每次我都这样做会不断向我投掷错误,我不知道我错过了什么
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("EEE, MMM d, yy hh:mm a", Locale.ENGLISH);
try {
// m brings in all variables from a get/setter
date = format.parse(m.getEventTime());
} catch (ParseException e) {
e.printStackTrace();
Log.d("Response.Error.Date", m.getEventTime());
}
eventTime.setText(date.toString());
我的变量m.getEventTime()传递以下字符串2018-04-28 14:00:00
我尝试将字符串作为2018-04-28T14:00:00Z
传递无效。
来自try / catch块的堆栈跟踪没有错误,但是日志正在打印D/Response.Error.Date: 2017-08-19 15:00:00
当我将e.toString()添加到日志时,它打印出D/Response.Error.Date: 2017-08-19 15:00:00 java.text.ParseException: Unparseable date: "2017-08-19 15:00:00"
在运行时的实际应用中,时间显示为now
星期六4月28日08:22:33 GMT + 01:00 2018
我错过了什么吗?
答案 0 :(得分:2)
你可以试试这个,
Date date = new Date();
SimpleDateFormat oldformat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
SimpleDateFormat format = new SimpleDateFormat("EEE, MMM d, yy hh:mm a", Locale.ENGLISH);
try {
// m brings in all variables from a get/setter
date = oldformat.parse(m.getEventTime());
} catch (ParseException e) {
e.printStackTrace();
Log.d("Response.Error.Date", m.getEventTime());
}
eventTime.setText(format.format(date));
答案 1 :(得分:1)
你可以得到这样的时间格式:
String dateTime = null;
DateFormat df = new SimpleDateFormat("dd-MM-yyyy, hh:mm a");
//here you can use your required format
dateTime = df.format(new Date(stringTime));
答案 2 :(得分:0)
您正在将日期转换为导致例外的英语:
请更改:
SimpleDateFormat format = new SimpleDateFormat("EEE, MMM d, yy hh:mm a", Locale.ENGLISH);
eventTime.setText(date.toString());
带
SimpleDateFormat format = new SimpleDateFormat("EEE, MMM d, yy hh:mm a");
eventTime.setText(format.format(date));