Code:
import java.net.*;
import java.io.*;
import java.util.*;
class Time
{
/* Network time is seconds from 1 Jan 1900
* Java time is milliseconds from 1 Jan 1970
* DIFFERENCE is number of seconds between these dates
*/
static long DIFFERENCE = 2208988800L;
public static void main (String [] args ) throws IOException
{
int b1,b2,b3,b4;
long remoteTime;
Socket sock = new Socket("time.nist.gov",37);
InputStream in = sock.getInputStream();
// read and pack four bytes
b1 = in.read();
b2 = in.read();
b3 = in.read();
b4 = in.read();
remoteTime = (((long)b1*256 + b2)*256 + b3)*256 + b4;
remoteTime -= DIFFERENCE;
sock.close();
Date remoteDate = new Date(remoteTime*1000); // convert to milliseconds
System.out.println("Remote time: "+remoteDate);
Date localTime = new Date();
System.out.println("Local time: "+localTime);
}
}
Bookmarks