2017-01-01 4 views
1

Итак, я получаю дату в формате 2017-01-01T01:34:00+00:00 с сервера, и у меня есть ниже SimpleDateFormatter, поднятый после просмотра многих примеров.Неотъемлемая дата выпуска со смещением по времени java

SimpleDateFormat serverToClientFormat= 
       new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'",Locale.getDefault()); 

Но когда я пытаюсь разобрать его ниже линии

serverToClientFormat.parse(object.getString("date")) 

строка, полученные от сервера в формат даты, он бросает

java.text.ParseException: дата не поддается синтаксическому анализу: " 2017-01-01T01: 34: 00 + 00: 00 "

Что, возможно, можно попробовать еще разобрать выше формата?

ответ

5

Вы используете литературу Z вместо буквы шаблона Z - так что ваш формат ожидает буквы Z на входе, а не смещения часового пояса.

Кроме того, шаблон Z не принимает : в смещении. Try with X instead (без кавычек) и он должен работать нормально:

new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX"); 

Live Example

+0

Извините, но даже после того, как изменения в 'YYYY-MM-dd'T'HH: мм: ss'X'' его выбрал такое же исключение .. :( –

+0

@GuruprasadRao: Конечно, это «Х» означает, что вы ожидаете символа «X». Ни один из ваших других символов формата не находится в '' ', зачем ставить этот в '' '? –

+0

Извините @TJCrowder .. Не очень знакомы с этими литералами, поэтому немного запутался .. Я получаю это сейчас .. :) –