2011-05-26 95 views
0

在我的应用程序中,我使用GeoNamesAPI在任何位置获取当前时间。 我已经注册使用。如何获取当前GMT值?

我的代码如下所示:

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

我得到了它的工作。代码如下:

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