Преобразование времени UTC в местное Android

Я получаю время UTC с сервера, например, «2016-01-04T06:27:23.92». Я хочу преобразовать его в 4 января 2016 года и время в локальном формате. Я использую следующий код, но он не работает -

Date localTime = new Date(commentDate);
String format = "yyyy/MM/dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(format);
Date gmtTime = new Date(sdf.format(localTime));
Date fromGmt = new Date(gmtTime.getTime() + TimeZone.getDefault().getOffset(localTime.getTime()));
commentDate = commentDate.substring(0, commentDate.lastIndexOf("."));

person unflagged.destination    schedule 06.01.2016    source источник
comment
Какую ошибку вы получаете?   -  person CAFEBABE    schedule 06.01.2016
comment
Я получаю исключение в Date localTime = new Date(commentDate); линия. У меня есть время в формате строки, например - 2016-01-04T06:27:23.92   -  person unflagged.destination    schedule 06.01.2016
comment
Кроме вышеупомянутого комментария. Мне кажется, что ваша строка данных не соответствует вашей строке формата.   -  person CAFEBABE    schedule 06.01.2016


Ответы (1)


попробуй это

try {
     //commentDate = "2016-01-04T06:27:23.92"
     Date date1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(commentDate);

     Date fromGmt = new Date(date1.getTime() + TimeZone.getDefault().getOffset(date1.getTime()));
     Log.e("Date",new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(fromGmt)); // print 2016/01/04 11:57:23 (0530 hour deviation)
} catch (ParseException e) {
     e.printStackTrace();
}

Вы можете изменить формат даты в соответствии с вашими требованиями.

person Kunu    schedule 06.01.2016