2013-10-27 4 views
0

Я пытаюсь преобразовать дату из JSON, которая находится в формате UTC, в мое местное время.Не удается правильно использовать SimpleDateFormat

Я получаю время как 10/27/2013 5:58:02 PM, которое мне нужно сделать в мое местное время, которое +5:30.

Но вместо этого я получаю 10/27/2013 6:28:02.

Мой код

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("M/d/yyyy H:mm:ss a"); 
    SimpleDateFormat longDateFormat=new SimpleDateFormat("M/d/yyyy H:mm:ss"); 
    simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); 

     String formattedDate=""; 
     try 
     { 
      Date myDate = simpleDateFormat.parse(mDateAndTime); 

      formattedDate = longDateFormat.format(myDate); 
     } catch (ParseException e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
+0

если вы удалите строку ... simpleDateFormat.setTimeZone (TimeZone.getTimeZone ("UTC")); может быть это работает. Я не уверен, потому что я не могу его проверить. Пожалуйста, попробуйте –

+0

thnx для ответа, но я получаю 10/27/2013 0:58:02 –

ответ

1

Я думаю, что это воля помогает вам:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("M/d/yyyy hh:mm:ss a"); 
SimpleDateFormat longDateFormat = new SimpleDateFormat("M/d/yyyy HH:mm:ss z"); 
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); 
try 
{ 
    Date myDate = simpleDateFormat.parse("10/25/2013 02:00:00 PM"); 
    String now = simpleDateFormat.format(myDate.getTime()); 
    System.out.println("12 hour format : " + now); 
    String time24 = longDateFormat.format(simpleDateFormat.parse(now)); 
    System.out.println("24 hour format : " + time24); 
} catch (ParseException e) 
{ 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
+0

Нет, я получаю 10/27/2013 0:58:02 +0530. Что такое «Z» здесь? –

+0

Какой формат времени вы хотите? –

+0

24-часовой формат, как я указал longDateFormat. –

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