在我的应用中,我使用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值?注意:我不想只显示日期。
提前致谢。
答案 0 :(得分:0)
我明白了。代码如下:
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());