如何找出皇家地理时,在我的应用程序,我想用我的应用程序连接实时。获取实时 - 而不是设备设置时间的Android
因此,如果用户更改其设备的时间,那么我应该只得到真正的通行时间 - 而不是设备时
我的问题是非常混乱,但尝试在一个简单的语言理解 -
我不想要设备时间,我想要在任何时间真正的超时时间
如何找出皇家地理时,在我的应用程序,我想用我的应用程序连接实时。获取实时 - 而不是设备设置时间的Android
因此,如果用户更改其设备的时间,那么我应该只得到真正的通行时间 - 而不是设备时
我的问题是非常混乱,但尝试在一个简单的语言理解 -
我不想要设备时间,我想要在任何时间真正的超时时间
有没有Android API让你这样的时间。用户可以随时更改设备时间,对此无能为力。
你最好的选择是与Web服务,您可以从中获取时间运行的服务器。既然你控制了服务器,你可以尝试确保它返回正确的时间。
我们可以使用joda时间库吗? – 2016-11-28 07:59:49
您需要使用NTP(网络时间协议)协议:
下面是一个代码,我发现somewhr别的..和我使用它。这使用apache commons库。
//列表的时间服务器:http://tf.nist.gov/service/time-servers.html
下面是Java代码,你
public class TimeLookup { public static final String TIME_SERVER = "time-a.nist.gov";
public static void main(String[] args) throws Exception {
NTPUDPClient timeClient = new NTPUDPClient();
InetAddress inetAddress = InetAddress.getByName(TIME_SERVER);
TimeInfo timeInfo = timeClient.getTime(inetAddress);
long returnTime = timeInfo.getReturnTime();
Date time = new Date(returnTime);
System.out.println("Time from " + TIME_SERVER + ": " + time);
}
}
需要互联网! – 2014-02-13 10:38:16
链接已更新:http://tf.nist.gov/tf-cgi/servers.cgi – androidevil 2015-10-08 18:54:37
在我的情况下,有效时间戳使用发现:timeInfo.getMessage()getReceiveTimeStamp()的getTime() – androidevil 2015-10-08 22:54:44
你想UTC时间? – penguat 2013-04-04 10:19:18
@penguat我只是想知道什么是真正的时间,而不是UTC或GMT时间 – 2013-04-04 10:22:33
你的意思是在设备的位置的本地时间? – penguat 2013-04-04 10:26:53