Конвертировать GMT+ дату в локальную на Android
Мне нужно конвертировать дату, например, пн 14 ноября 13:36:01 GMT+03:00 2016 в местное. Так должно быть 16:36:01
Date serverDate; // Mon Nov 14 13:36:01 GMT+03:00 2016
SimpleDateFormat dateFormat = new SimpleDateFOrmat("hh:mm:ss");
String result = dateFormat.formatDate(serverDate);
Результат не видит GMT +03: 00 и дает мне неправильное время (13:36 вместо 16:36).
1 ответ
Решение
Поэтому мне просто нужно было создать форматтер без ZZZZZ и установить часовой пояс в GMT.
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.getDefault());
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
final Date localDate = simpleDateFormat.parse("2016-11-11T09:48:24-05:00");
SimpleDateFormat dateFormat = new SimpleDateFOrmat("hh:mm:ss");
String result = dateFormat.formatDate(localDate); //12:48:24
После этого кода время переменной localDate будет 12:48:24 (в случае моего GMT +03:00).