1

Я пытаюсь разобрать строку на дату, и я искал ее всюду и не смог найти решение для нее. У меня есть строка, отформатированная. И когда я пытаюсь разобрать его, он всегда выдает исключение, хотя я попытался установить Locale.English также и дать шаблон даты (очевидно). И мой шаблон даты «Wed, 29 Jun 2016 16:16:32 +0000». Заранее спасибо за помощь.simpleDateFormat выбрасывает исключение исключительной даты

dateFormat = new SimpleDateFormat("EEE, DD MMM yyyy HH:mm:ss 'Z'", Locale.ENGLISH); 

try { 
       String dateA = "Wed, 29 Jun 2016 16:16:32 +0000"; 
       String dateB = "Wed, 29 Jun 2016 16:04:54 +0000"; 
       Date parsedDateA = dateFormat.parse(dateA); 
       Date parsedDateB = dateFormat.parse(dateB); 
       if (parsedDateA .equals(parsedDateB) || parsedDateA .before(parsedDateB)) { 
        //Do some work here 

       } 

      } catch (ParseException e) { 
       e.printStackTrace(); 

      } 
+1

'EEE, dd MMM yyyy HH: mm: ss 'Z'' – betorcs

ответ

1

От docs: "EEE, d MMM yyyy HH:mm:ss Z". «d» должен быть строчным.

Верхний регистр D представляет собой день в году, а не день месяца.

Edit: Благодаря предложению @ MikeM годы:. Удалить одиночные кавычки 'Z' вас есть вокруг Z. Я этого раньше не заметил.

+0

Да, спасибо, что указали на эту ошибку, но дело в том, что она по-прежнему вызывает исключение. Он говорит о невозможности просмотра (со смещением 26), и это означает смещение символа + в «Ср, 29 июня 2016 года 16:16:32 +0000». –

+0

Эта ошибка связана с часовым поясом (я с 26-го момента считал 26 символов). Проверьте [this] (https://developer.android.com/reference/java/text/SimpleDateFormat.html#rfc822timezone). Измените часовой пояс на '+00: 00', попробуйте несколько вариантов, чтобы увидеть, какой из них работает. – Vucko

+1

@ShoaibAnwar 'Z' не должно быть в одинарных кавычках. –

Смежные вопросы