How to use an Internet time server to get the time?

sp0d is not quite right:

timeInfo.getReturnTime(); // Returns time at which time message packet was received by local machine

So it just returns current system time, not the received one. See TimeInfo man page.
You should use

timeInfo.getMessage().getTransmitTimeStamp().getTime();

instead.
So the code block will be:

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);

Leave a Comment