2016-07-25 3 views
-1

Я работаю над приложением формата даты, у меня есть один формат даты, но я не могу разобрать этот формат.Как разобрать формат даты T в Android?

try { 
    String dtStart = "2016-07-20T11:51:31.744Z"; 

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); 

     if (dtStart != null) { 
      Date date = format.parse(dtStart); 

      Calendar myCal = new GregorianCalendar(); 
      myCal.setTime(date); 

      String promoPendingDay = "" + myCal.get(Calendar.DAY_OF_MONTH); 
      int promoPendingMonth = myCal.get(Calendar.MONTH) + 1; 
      String promoPendingYear = "" + myCal.get(Calendar.YEAR); 

      mMessageStartDateLabel.setText(promoPendingDay + "/" + promoPendingMonth + "/" + promoPendingYear); 
     } 

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

каждый раз, когда я получаю одно исключение java.text.ParseException: Unparseable date:

Просьба пройти через мой код и предложить мне какое-то решение.

+1

у вас есть миллисекунды. – Blackbelt

+0

эй спасибо, я немного путаюсь в этом формате, можете ли вы рассказать мне, как разбирать этот формат даты? –

+0

добавить '.SSS' после' ss' – Blackbelt

ответ

0

Здесь представлено решение с двумя изменениями. Одно изменение заключается в добавлении дробных секунд, другое изменение - установка часовой пояс UTC.

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); 
format.setTimeZone(TimeZone.getTimeZone("GMT")); // very important, input Z means UTC+00 
+0

эй спасибо очень полезно, проблема решена –

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