Android конвертирование даты в строку

Я хочу конвертировать: ср 06 апр 09:37:00 по Гринвичу +03:00 2016 по 02.02.2012. Что я пробовал

    SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
    Date date = sdf.parse(mydate);

а также

 String mydate =  "Wed Apr 06 09:37:00 GMT+03:00 2016";
            SimpleDateFormat src = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy");
            SimpleDateFormat dest = new SimpleDateFormat("dd/MM/yyyy");
            Date date = null;
            try {
                date = src.parse(mydate);
            } catch (ParseException e) {
                Log.d("deneme",e.getMessage());
            }
            String result = dest.format(date);

но это дает ошибку. Непонятная дата: "Ср. Апр. 06 09:37:00 GMT+03:00 2016" (со смещением 0). Любая идея, как я могу ее проанализировать?

1 ответ

Решение

Я думаю, что вы пытаетесь отформатировать английскую дату локали, но ваша системная локаль не английская. Поэтому, когда вы создаете SimpleDateFormat объект указать Locale в явной форме.

Попробуйте этот код,

    String mydate = "Wed Apr 06 09:37:00 GMT+03:00 2016";
    SimpleDateFormat src = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.ENGLISH);
    SimpleDateFormat dest = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
    Date date = null;
    try {
        date = src.parse(mydate);
    } catch (ParseException e) {
        Log.d("Exception",e.getMessage());
    }
    String result = dest.format(date);
    Log.d("result", result);
Другие вопросы по тегам