获取真实的世界时间

时间:2014-03-11 12:29:48

标签: java android

我使用此代码从互联网获取真实世界时间:

        try
          {
            HttpClient httpClient = new DefaultHttpClient();
            HttpResponse httpResponse = httpClient.execute( new HttpGet( "http://developer.yahooapis.com/TimeService/V1/getTime?appid=YahooDemo"));
            StatusLine statusLine = httpResponse.getStatusLine();
            if( statusLine.getStatusCode() == HttpStatus.SC_OK)
              {
                ByteArrayOutputStream byteTimeStamp = new ByteArrayOutputStream();
                httpResponse.getEntity().writeTo( byteTimeStamp);
                byteTimeStamp.close();
                String sTimeStamp = byteTimeStamp.toString(); // this data contains real world time, I now can parse it...
              }
             else
              httpResponse.getEntity().getContent().close();
          }
         catch( Exception e) {}

此代码完美无缺。但它使用雅虎服务并取决于它们的可用性。

我使用GPS定位服务的第二种方式,但这种方式工作需要添加权限

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

这不是个好主意。

我需要另一种方式来获取现实世界时间。请任何想法。

如果可能的话,我还需要用毫秒来获得世界时间。

1 个答案:

答案 0 :(得分:0)

一种可能性是使用Apache软件,例如DAYTIME协议DaytimeUDPClient。然后,您可以通过SimpleDateFormat的帮助解释输出。另一个更精确的解决方案是基于SNTP。