是否有一个web服务将时间返回到可以从java调用的纳秒点? 我需要一个能给我时间的外部资源。在我的java应用程序中,我调用了System.nanoTime();但我需要从服务器调用时间进行其他计算。
由于
答案 0 :(得分:0)
网络时间协议(NTP)允许同步计算机系统的时钟。您可以连接到任何NTP服务器以请求当前时间
包apache commons中的NTPUDPClient提供了一个NTP客户端
使用
import org.apache.commons.net.ntp.NTPUDPClient;
import org.apache.commons.net.ntp.TimeInfo;
public long getRemoteNTPTime() {
NTPUDPClient client = new NTPUDPClient();
// We want to timeout if a response takes longer than 5 seconds
client.setDefaultTimeout(5000);
//NTP server list
for (String host : hosts) {
try {
InetAddress hostAddr = InetAddress.getByName(host);
TimeInfo info = client.getTime(hostAddr);
return info.getMessage().getTransmitTimeStamp().getTime();
}
catch (IOException e) {
e.printStackTrace();
}
}
client.close();
return null;
}
配置多台主机,以避免一台主机出现故障。寻找托管附近的服务器以减少网络延迟。例如
ntp02.oal.ul.pt
ntp04.oal.ul.pt
ntp.xs4all.nl