#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());