Ошибка: Unparseable date

219
31 января 2018, 13:52

С сервера приходит сообщение в таком формате:

String strginDate = "Fri, 05 Jan 2018 15:19:14 GMT";
GMTToDDMMMYYYY(String strginDate)

Так вот, я парсю это таким образом:

private String GMTToDDMMMYYYY(String gmt){
    DateFormat sdf = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z");
    sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd mmm yyyy", Locale.getDefault());
    Date d = null;
    try {
        d = sdf.parse(gmt);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    String dateStr = simpleDateFormat.format(d);
    return dateStr;
}

И получаю ошибку:

java.text.ParseException: Unparseable date: "Fri, 05 Jan 2018 15:19:14 GMT" (at offset 0)

Но я перепробовал все, например так:

DateFormat sdf = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss 'GMT'");

или

DateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'");

и даже так:

DateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss 'GMT'");

Но результат такой же.

Где я не правильно делаю?

Answer 1

Нашел ответ, проблема было в том, что нужно было добавить Locale.

Я писал Local.getDefault(), а оказывается надо было Locale.US

DateFormat sdf = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z", Locale.US);
READ ALSO
Canvas (Круг) низкого разрешения. Android Studio

Canvas (Круг) низкого разрешения. Android Studio

Для рисования квадрата использую замену ImageView на нарисованный Круг (Rectangle)Вот мой код для создания ImageView и рисования круга:

225
Apache POI цифровая подпись

Apache POI цифровая подпись

Пытаюсь подписать word документ с помощью цифровой подписи используя Apache POIЕсть JKS хранилище с парой открытый-закрытый ключ

200
Вызов метода toString() в Java

Вызов метода toString() в Java

Чем обусловлен безусловный вызов метода toString() в данном случае? И почему не происходит безусловного вызова второго метода?

270