我想得到GMT [格林威治标准时间],我也不想依赖于我的系统日期时间.基本上,我想使用时间同步服务器,如in.pool.ntp.org [india]进行GMT计算,或者可能是我错误的方向!
在 java中怎么做?
在 java中怎么做?
有没有任何java库可以从时间服务器获取时间?
解决方法
sp0d不太正确:
timeInfo.getReturnTime(); // Returns time at which time message packet was received by local machine
所以它只是返回当前的系统时间,而不是收到的时间.见TimeInfo man page.
你应该使用
timeInfo.getMessage().getTransmitTimeStamp().getTime();
代替.
所以代码块将是:
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);