2016-06-28 2 views
1

привет я преобразовывая дату простым способом формата даты, но это возвращение неправильное время выхода, как мне нужна этаДата преобразования в локальный часовой пояс

вход: 2016-06-28T08: 19: 05.721Z

выход должен быть: 13: 49: 05

, но его возвращение: 08: 19: 05

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); 
     Date newDate = null; 
     try { 
      newDate = format.parse("2016-06-28T08:19:05.721Z"); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 

     format = new SimpleDateFormat("hh:mm a"); 
     String date = format.format(newDate); 
+0

Pass локаль к formater – silverFoxA

+0

Вход является 2016-06-28T08: 19: 05.721Z, почему быть выходным 13:49 : 05? – ThiepLV

+0

что вы хотите сделать? поясните пожалуйста. –

ответ

0

Пройдите Локаль в форму SimpleDateFormat вместе с рисунком.

SimpleDateFormat sd = new SimpleDateFormat("EEEE dd MMM yyyy", Locale.ENGLISH); 
0
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); 
     Date newDate = null; 
     try { 
      newDate = format.parse("2016-06-28T08:19:05.721Z"); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 

     format = new SimpleDateFormat("HH:mm a"); 
     String date = format.format(newDate); 
0

Изменить шаблон разборе

"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" 

в

"yyyy-MM-dd'T'HH:mm:ss.SSSX" 

так, что входной часовой пояс фактически принимается во внимание (и не только ожидает буквального Z).

Для форматирования используется часовой пояс по умолчанию и предполагается, что это UTC + 05: 30, вы получите нужный результат.

0
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); 
    Date newDate = null; 
    try { 
     newDate = format.parse("2016-06-28T08:19:05.721Z"); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
    format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    String date = format.format(newDate); 


    format .setTimeZone(TimeZone.getTimeZone("UTC")); 
    Date parsed = null; // => Date is in UTC now 
    try { 
     parsed = format .parse(date); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 

    TimeZone tz = TimeZone.getTimeZone("Asia/Kolkata"); 
    SimpleDateFormat destFormat = new SimpleDateFormat("HH:mm:ss"); 
    destFormat.setTimeZone(tz); 

    date = destFormat.format(parsed); 
    Log.e("date",date); 

я решил, делая все this..Thanks :)

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