Как получить текущее значение GMT?

#android #timezone

#Android #Часовой пояс

Вопрос:

В моем приложении я использую GeoNamesAPI для получения текущего времени в любом месте. Я зарегистрировался для его использования.

Мой код выглядит следующим образом:

 Timezone currentTimeZone;
org.geonames.WebService.setUserName("mathew");
currentTimeZone = GeoNamesAPI.fetchTimeZone(latitude, longitude);
  

Проблема в том, что когда я проверяю время в любом океане, это currentTimeZone возвращает null.
Итак, в этом случае я показываю значение GMT.

 String time = null;
Integer timeZone = (int) (((longitude / 7.5)   1) / 2);

if (timeZone >= 0) {
    time = "GMT "   timeZone;
} else {
    time = "GMT"   timeZone;
}
  

Таким образом, time значение будет иметь вид GMT somevalue. Я хочу найти другое решение для этого случая. В этом случае я также хочу отобразить значение времени. Как я могу это сделать? Есть ли какой-либо способ получить значение GMT? Примечание: Я не хочу показывать дату, требуется только время.

Заранее спасибо.

Ответ №1:

У меня это сработало. Код приведен ниже:

 Integer timeZone = (int) (((longitude / 7.5)   1) / 2);
DateFormat dateformat = DateFormat.getTimeInstance(DateFormat.SHORT);
dateformat.setTimeZone(TimeZone.getTimeZone("gmt"));
Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR, timeZone);   //Adding/Subtracting hour to current date time
String newdate = dateformat.format(cal.getTime());