Android: анализ даты JSON

1

Я получаю с сервера объект 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();
                    }

Заранее большое спасибо!

Теги:
datetime
parsing

2 ответа

2
Лучший ответ

вам нужно изменить свой исходный ответ, например, заменить/Дата/

String data = "/Date(1337032800000+0000)/";
String result = data.replaceAll("^/Date\\(" , "");
result = result.substring(0, result.indexOf('+'));

теперь у вас есть 1337032800000 который находится в Миллисекунде.

  • 0
    при этом он просто обрезает деталь в начале, а не в конце
2

Это временная метка? Почему вы просто не меняете 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);
    }

Я знаю, что это не профессионал, но он работает для меня.

  • 0
    это работает, но как я могу настроить формат даты, чтобы показать? Мне просто нужно "1 апреля"
  • 0
    попробуйте: date.toLocaleString ()
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню