Непревзойденная дата: «пт 10 окт 23:11:07 IST 2014» (на оф-оф 20)

Я создал этот funtion для синтаксического анализа даты, но это дает исключение: Непревзойденная дата: «Пятница 10 октября 23:11:07 IST 2014» (по офсету 20). Пожалуйста, помогите, поскольку я не могу понять, что не так с этим кодом.

public Date parseDate() { String strDate ="Fri Oct 10 23:11:29 IST 2014"; String newPattern = "EEE MMM dd HH:mm:ss Z yyyy"; SimpleDateFormat formatter = new SimpleDateFormat(newPattern); try { Date date = formatter.parse(strDate); return date; } catch (java.text.ParseException e) { e.printStackTrace(); } return null; } 

Используйте локаль для синтаксического анализатора:

  SimpleDateFormat formatter = new SimpleDateFormat(newPattern, Locale.US); 

Это должно решить вашу проблему. По крайней мере, это работает для меня с вашим примером.

РЕДАКТИРОВАТЬ:

Похоже, что действительно существует проблема с часовым поясом Android и IST. Я могу разобрать любой часовой пояс на Android, используя вышеприведенный шаблон, но не IST.

Быстрый взлом – это изменение части часового пояса, если в строке есть зона IST. Это работает и на Android:

  String strDate = "Fri Oct 10 23:11:29 IST 2014"; strDate = strDate.replace(" IST ", " GMT+0530 "); String newPattern = "EEE MMM dd HH:mm:ss Z yyyy"; SimpleDateFormat formatter = new SimpleDateFormat(newPattern, Locale.ENGLISH); 
  SimpleDateFormat formatter = new SimpleDateFormat(newPattern); formatter.setLenient(true); 

// установка формата, чтобы быть снисходительным, решает проблему

Спасибо людям за помощь …

Используйте этот код, он будет работать. Я думаю, что есть проблема с IST, он не распознает его

 public Date parseDate(String strDate) { strDate = "Fri Oct 10 23:11:29 2014"; String newPattern = "EEE MMM dd HH:mm:ss yyyy"; SimpleDateFormat formatter = new SimpleDateFormat(newPattern); formatter.setTimeZone(TimeZone.getTimeZone("IST")); Date date; try { date = formatter.parse(strDate.trim()); Log.i("minal", "date:" + date); return date; } catch (java.text.ParseException e) { e.printStackTrace(); Log.d("Populace", "ParseException: " + e.getLocalizedMessage()); } return null; } 

Согласно документации http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html ,

 Letter Date or Time Component Presentation Examples z Time zone General time zone Pacific Standard Time; PST; GMT-08:00 Z Time zone RFC 822 time zone -0800 X Time zone ISO 8601 time zone -08; -0800; -08:00 

Вы должны использовать небольшой z вместо капитала Z для общего часового пояса.

Тем не менее, я попробовал (Java SE 1.8.0), и он работает как с z так и с Z для меня.

Поскольку Android007 написал в качестве комментария: «В Java приложение работает нормально, но на Android дает исключение» – возможно, ваша библиотека реализует контракт более тщательно, чем стандартный Oracle J2SE 🙂

См. Также здесь: https://stackoverflow.com/a/2581073/2886891

Ваш шаблон даты содержит языковые чувствительные шаблоны. Поскольку SimpleDateFormat поддерживает разбор дат в разных локалях (АНГЛИЙСКИЙ, ФРАНЦУЗСКИЙ, США, ЯПОНСКИЙ … и т. Д.), Вам нужно будет указать, какой из них вы используете.

Судя по вашему «IST», ваш текущий стандарт по умолчанию на вашем компьютере, вероятно, не является АНГЛИЙСКИМ или США. Поскольку строки «Fri» и «Oct» находятся на английском языке, синтаксический анализ завершится неудачей с вашим стандартным языковым стандартом.

Измените свой форматтер следующим образом: он должен работать:

 SimpleDateFormat formatter = new SimpleDateFormat(newPattern, Locale.ENGLISH); 
Intereting Posts
Cordova / Phonegap – Android: значок не обновляется Java: разные результаты при декодировании base64 строки с java.util.Base64 vs android.util.Base64 Как изменить образец bitmapmesh, чтобы включить эффект рыбий глаз? BroadcastReceiver onReceive () получает вызов дважды Как не загорать PhoneStateListener.CALL_STATE_RINGING, если уже разговаривает, и второй вызывающий звонит Android webView saveState Отключение GPS в эмуляторе Android Разрешение Android M проверенного READ_PHONE_STATE (опасные разрешения) Как сохранить положение полосы прокрутки в списке андроидов? Объект интерфейса не работает при вызове из другого фрагмента Обмениваться фотографиями с Android-приложения, используя действие отправить с намерением это не работает :( Как проверить производительность приложения для Android? Android Остановка фоновой музыки при нажатии клавиши «Домой» Как получить токенизатор MultiAutoCompleteTextView, похожий на приложение Facebook? BindException с запрошенным запросом INTERNET