【问题标题】:How to get current time from Google for Android? [closed]如何从 Google for Android 获取当前时间? [关闭]
【发布时间】:2015-08-03 14:27:38
【问题描述】:

是否有用于从时区获取当前时间的 Google API?如果有,我该如何使用它? 我想从特定时区获取当前在线时间,例如获取“当前时间:03/08/2015 11:27:54”或类似的东西。我想从谷歌那里得到它,因为它有信心。

谢谢!

【问题讨论】:

  • 你的意思是从谷歌服务器获取时间?
  • 也可能是一个解决方案。我要求提供 API 只是因为我正在使用它们。但如果我能得到世界特定地区的当前时间,就会很有用
  • 当您从系统中获得时间时,您也获得了时区。您可以使用它来将时间转换为所需的时区。

标签: android api time


【解决方案1】:

这个答案很好地给出了如何做到这一点的方法。 https://stackoverflow.com/a/13066298/2864560

就获取时间数据等小事而言,雅虎与 Google 一样可靠,因此这应该不会太麻烦。您可以使用以下链接从 Android(有点像 Google)获取时间:https://stackoverflow.com/a/8214204/2864560

另一个对每个用户来说是可靠的就是这段代码

LocationManager locMan = (LocationManager) activity.getSystemService(activity.LOCATION_SERVICE);
long networkTS = locMan.getLastKnownLocation(LocationManager.NETWORK_PROVIDER).getTime();

这基本上可以让您将时间缩短到秒,因为它使用的数据可能比 Google 的数据更准确

【讨论】:

  • 对于最后一个例子,我可能没有更新时间。安全性低
  • 刚刚尝试了雅虎示例并获得拒绝连接。
  • 我刚刚运行了雅虎,我得到了 PDT(太平洋夏令时)的时间,你确定你添加了所需的权限,如 Wifi 状态、互联网等?
  • 我刚刚再次尝试了雅虎代码(没有进行任何更改)并得到了答案。因此,这告诉我,我无法始终获得时间(有时会收到拒绝响应),未能满足我的要求之一:信心。感谢任何方式的帮助:)
【解决方案2】:

这足以得到我想要的:

使用 HttpGet、Client 和 Response,我设法从响应 Date Header 中获取服务器的当前时间。我可以在任何时候都调用它,并且会得到自信的响应(Google 几乎 100% 可用,我可以相信得到正确的日期和时间)

try{
        HttpClient httpclient = new DefaultHttpClient();
        HttpResponse response = httpclient.execute(new HttpGet("https://google.com/"));
        StatusLine statusLine = response.getStatusLine();
        if(statusLine.getStatusCode() == HttpStatus.SC_OK){
            String dateStr = response.getFirstHeader("Date").getValue();
            //Here I do something with the Date String
            System.out.println(dateStr);

        } else{
            //Closes the connection.
            response.getEntity().getContent().close();
            throw new IOException(statusLine.getReasonPhrase());
        }
    }catch (ClientProtocolException e) {
        Log.d("Response", e.getMessage());
    }catch (IOException e) {
        Log.d("Response", e.getMessage());
    }

【讨论】:

  • 注意这种方法,因为标题中的日期有 GMT 格式的时间
  • 可以直接用到一个方法吗?喜欢 public Gettime(){//你的代码?}
猜你喜欢
  • 2012-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-26
  • 2013-07-27
相关资源
最近更新 更多