利用Android获取原子时间

时间:2011-11-19 07:47:45

标签: android

我使用以下代码从Android设备连接并检索来自AtomicTime服务器的UTC时间:

public static final String ATOMICTIME_SERVER="http://132.163.4.101:13";
BufferedReader in = null;

try 
{
    URLConnection conn = new URL(ATOMICTIME_SERVER).openConnection();
    in = new BufferedReader(new InputStreamReader(conn.getInputStream()));

    String atomicTime;
    while (true) 
   {
      if ( (atomicTime = in.readLine()).indexOf("*") > -1) 
      {
         break;
      }
   }

   ... do something
}
catch ...

它不会返回任何数据。从浏览器访问URL时,我们得到以下信息:

55884 11-11-19 07:40:22 00 0 0 824.5 UTC(NIST)

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

String atomicTime = "";
try 
{
    Socket socket = new Socket("132.163.4.101", 13);
    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

    in.readLine(); // Ignore leading blank line
    atomicTime = in.readLine();
    socket.close();
} 
catch....

答案 1 :(得分:0)

这是因为TCP端口13上没有HTTP服务。有白天服务。您应该使用Socket而不是URLConnection。或者也许可以为Android找到一些NTP实现。