确保互联网提供时间

时间:2015-11-07 14:21:09

标签: java android date time

我想在我的Android应用程序中使用当前的在线时间。我知道您可以确保在Android设置中通过互联网提供时间。我怎样才能在Java中检查它?

2 个答案:

答案 0 :(得分:0)

您需要使用SNTP客户端或其他东西自行检查。

即使用户没有手动更改时间,也不要求设备使用“Internet”自动设置时间。例如,美国的许多设备都依赖来自无线运营商的NITZ信号作为其时间源。

答案 1 :(得分:0)

似乎这里已经存在类似的问题:How to use an Internet time server to get the time?

我必须承认我没有个人使用它,但看起来值得一试。它使用apache commons库。

复制相关代码(链接的完整说明):

String TIME_SERVER = "time-a.nist.gov";   
NTPUDPClient timeClient = new NTPUDPClient();
InetAddress inetAddress = InetAddress.getByName(TIME_SERVER);
TimeInfo timeInfo = timeClient.getTime(inetAddress);
long returnTime = timeInfo.getMessage().getTransmitTimeStamp().getTime();
Date time = new Date(returnTime);

它没有说明TIME_SERVER可能无法更新。以下是具有可用性的服务器列表:http://tf.nist.gov/tf-cgi/servers.cgi#

请告诉我这是否适合您:)