I have problem formating date.
From : EEE, d MMM yyyy HH:mm:ss Z (example : Mon, 05 Jan 2014 15:10:00 +0200)
To : dd/MMM/yyyy HH:mm (example : 05/01/2014 15:10)
Here is what i tried :
private String formatDate(String date) {
SimpleDateFormat format = new SimpleDateFormat("dd/MMM/yyyy HH:mm");
Date dateResult = null;
try {
dateResult = format.parse(date);
}
catch (java.text.ParseException e) {
Log.e(TAG, "", e);
}
return dateResult.toString();
}
I get exception : unparseable date at offset 0
some help would be nice here thanks ;)
You need two times converting. For example:
private String formatDate(String date) {
SimpleDateFormat formatFrom = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z ");
java.util.Date tmpDate = formatFrom.parse(date);
SimpleDateFormat formatTo = new SimpleDateFormat("dd/MMM/yyyy HH:mm");
return formatTo.format(tmpDate);
}
For my own RSS parser I use the following code to parse different date formats:
if (value.contains("+")) {
value = value.substring(0, value.lastIndexOf("+") - 1);
}
String[] patterns = {//"EEE, dd MMM yyyy hh:mm:ss UTC",
"yyyy.MM.dd G 'at' HH:mm:ss z",
"EEE, MMM d, ''yy",
"yyyyy.MMMMM.dd GGG hh:mm aaa",
"EEE, d MMM yyyy HH:mm:ss Z",
"yyMMddHHmmssZ",
"d MMM yyyy HH:mm:ss z",
"yyyy-MM-dd'T'HH:mm:ss",
"yyyy-MM-dd'T'HH:mm:ss'Z'",
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"yyyy-MM-dd'T'HH:mm:ssZ",
"yyyy-MM-dd'T'HH:mm:ss.SSSZ",
"yyyy-MM-dd'T'HH:mm:ssz",
"yyyy-MM-dd'T'HH:mm:ss.SSSz",
"EEE, d MMM yy HH:mm:ssz",
"EEE, d MMM yy HH:mm:ss",
"EEE, d MMM yy HH:mm z",
"EEE, d MMM yy HH:mm Z",
"EEE, d MMM yyyy HH:mm:ss z",
"EEE, d MMM yyyy HH:mm:ss Z",
"EEE, d MMM yyyy HH:mm:ss ZZZZ",
"EEE, d MMM yyyy HH:mm z",
"EEE, d MMM yyyy HH:mm Z",
"d MMM yy HH:mm z",
"d MMM yy HH:mm:ss z",
"d MMM yyyy HH:mm z",
"d MMM yyyy HH:mm:ss z"};
for (int i = 0; i < patterns.length; i++) {
SimpleDateFormat sdf = new SimpleDateFormat(patterns[i], Locale.ENGLISH);
try {
pubdate = sdf.parse(value);
break;
} catch (Exception e) {
}
}