Я получаю с сервера объект Json с этим форматом "Date": "/Date(1337032800000+0000)/"
и мне нужно, чтобы он был как "1 апреля".
Я пытаюсь разобрать его так, но я всегда получаю сообщение "Unparseable date" message
:
mDate = jsonArray.getJSONObject(i).getString("Date");
String shortDate = mDate.substring(6, mDate.length()-7);
String format="yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
Date date = sdf.parse(shortDate);
} catch (ParseException e) {
e.printStackTrace();
}
Заранее большое спасибо!
вам нужно изменить свой исходный ответ, например, заменить/Дата/
String data = "/Date(1337032800000+0000)/";
String result = data.replaceAll("^/Date\\(" , "");
result = result.substring(0, result.indexOf('+'));
теперь у вас есть 1337032800000
который находится в Миллисекунде.
Это временная метка? Почему вы просто не меняете String на длинные и:
Date date = new Date();
date.setTime(yourLongVariable);
Месяц:
int month = date.getMonth();
months = " " + res.getString(R.string.january);
if(month == 2)
{
months = " " + res.getString(R.string.febuary);
}
else if(month == 3)
{
months = " " + res.getString(R.string.march);
}
else if(month == 4)
{
months = " " + res.getString(R.string.april);
}
else if(month == 5)
{
months = " " + res.getString(R.string.may);
}
else if(month == 6)
{
months = " " + res.getString(R.string.june);
}
else if(month == 7)
{
months = " " + res.getString(R.string.july);
}
else if(month == 8)
{
months = " " + res.getString(R.string.august);
}
else if(month == 9)
{
months = " " + res.getString(R.string.september);
}
else if(month == 10)
{
months = " " + res.getString(R.string.october);
}
else if(month == 11)
{
months = " " + res.getString(R.string.november);
}
else if(month == 12)
{
months = " " + res.getString(R.string.december);
}
Я знаю, что это не профессионал, но он работает для меня.