尝试格式化日期并将其放入Android Studio中的TextView
周一,2016年2月29日22:31:00 GMT
到
2016-02-29 22:31:00
在我的Genymotion Google Nexus 5,三星Galaxy S5等设备中,它看起来很完美。当我在真实手机(不仅仅是一个)上运行此应用程序时,带有日期的TextView为空:getFormatPubDate抛出ParseException,其中包含" Unparseable date"在
date = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z").parse(pubDate);
pubDate变量中的日期是正确的而不是null。
// strings.xml
<string name="data_time_format">yyyy-MM-dd HH:mm:ss</string>
// someClass.java
public String getFormatPubDate(String format){
try {
Date date = null;
date = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z").parse(pubDate);
return new SimpleDateFormat(format).format(date);
} catch (ParseException e) {
e.printStackTrace();
}
return pubDate;
}
// someActivity.java
viewHolder.timePublishedTextView.setText(cachedNews.getFormatPubDate(activity.getResources().getString(R.string.data_time_format)));
P.S。我使用HH格式(24小时),但时间不正确。例 来自模拟器 - 周一,2016年2月29日23:01:00 GMT格式化为2016-02-29 十八点01分00秒
答案 0 :(得分:0)
//This is original date format
String date = "Mon, 29 Feb 2016 22:31:00";
SimpleDateFormat sdf = new SimpleDateFormat("EE, dd MMM yyyy HH:mm:ss",
Locale.ENGLISH);
//This is new date format
SimpleDateFormat print = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parsedDate = null;
try
{
parsedDate = sdf.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
String text = print.format(parsedDate);