永发信息网

java获取网络当前时间 时间不对

答案:3  悬赏:30  手机版
解决时间 2021-02-25 12:59
  • 提问者网友:感性作祟
  • 2021-02-25 04:21
public static Date getInternetDate(){
URL url;
Date currDate = null;
try {
url = new URL("http://www.bjtime.cn");
//取得资源对象
URLConnection uc=url.openConnection();//生成连接对象
uc.connect(); //发出连接
long ld=uc.getDate(); //取得网站日期时间
currDate =new Date(ld);

} catch (Exception e) {

e.printStackTrace();
}
return currDate;
}
}
---- currDate: Wed Jul 29 01:21:18 CST 2015 实际北京时间应该是 礼拜四 (30号)上午11点多
最佳答案
  • 五星知识达人网友:动情书生
  • 2021-02-25 05:48
www.bjtime.cn的服务器时间是加密的,请从其他网站获取。
全部回答
  • 1楼网友:英雄的欲望
  • 2021-02-25 08:49
如果你要获取的是internet时间,可以使用ntp服务。 ntp概念简介    network time protocol(ntp)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,gps等等)做同步化,它可以提供高精准度的时间校正(lan上与标准间差小于1毫秒,wan上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。  java实现: import java.io.inputstream; import java.net.socket; public class timeutil {     public static final int default_port = 37;//ntp服务器端口     public static final string default_host = "time-nw.nist.gov";//ntp服务器地址     private timeutil() {     };     public static long currenttimemillis(boolean sync) {         if (sync != null && sync.booleanvalue() != true)             return system.currenttimemillis();         try {             return synccurrenttime();         } catch (exception e) {             return system.currenttimemillis();         }     }     public static long synccurrenttime()  throws exception {         // the time protocol sets the epoch at 1900,         // the java date class at 1970. this number         // converts between them.         long differencebetweenepochs = 2208988800l;         // if you'd rather not use the magic number uncomment         // the following section which calculates it directly.                  inputstream raw = null;         try {             socket thesocket = new socket(default_host, default_port);             raw = thesocket.getinputstream();             long secondssince1900 = 0;             for (int i = 0; i < 4; i++) {                 secondssince1900 = (secondssince1900 << 8) | raw.read();             }             if (raw != null)                 raw.close();             long secondssince1970 = secondssince1900 - differencebetweenepochs;             long mssince1970 = secondssince1970 * 1000;             return mssince1970;         } catch (exception e) {             throw new exception(e);         }     } } 中国大概能用的ntp时间服务器       server 133.100.11.8 prefer       server 210.72.145.44       server 203.117.180.36 //程序中所用的       server 131.107.1.10       server time.asia.apple.com       server 64.236.96.53       server 130.149.17.21       server 66.92.68.246       server www.freebsd.org       server 18.145.0.30       server clock.via.net       server 137.92.140.80       server 133.100.9.2       server 128.118.46.3       server ntp.nasa.gov       server 129.7.1.66       server ntp-sop.inria.frserver 210.72.145.44(国家授时中心服务器ip地址)       ntpdate 131.107.1.10       ntpdate -s time.asia.apple.com
  • 2楼网友:西岸风
  • 2021-02-25 07:12
CST是美国时间啊大哥,就是说该连接提供的方法拿的是美国时间
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯