‘壹’ java获取网络当前时间
如果你要获取的是Internet时间,可以使用NTP服务。
NTP概念简介
Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。
java实现:
importjava.io.InputStream;
importjava.net.Socket;
publicclassTimeUtil{
publicstaticfinalintDEFAULT_PORT=37;//NTP服务器端口
_HOST="time-nw.nist.gov";//NTP服务器地址
privateTimeUtil(){
};
(Booleansync){
if(sync!=null&&sync.booleanValue()!=true)
returnSystem.currentTimeMillis();
try{
returnsyncCurrentTime();
}catch(Exceptione){
returnSystem.currentTimeMillis();
}
}
()throwsException{
//,
//thejavaDateclassat1970.Thisnumber
//convertsbetweenthem.
longdifferenceBetweenEpochs=2208988800L;
//Ifyou'
//.
/*
*TimeZonegmt=TimeZone.getTimeZone("GMT");Calendarepoch1900=
*Calendar.getInstance(gmt);epoch1900.set(1900,01,01,00,00,00);
*longepoch1900ms=epoch1900.getTime().getTime();Calendarepoch1970
*=Calendar.getInstance(gmt);epoch1970.set(1970,01,01,00,00,00);
*longepoch1970ms=epoch1970.getTime().getTime();
*
*longdifferenceInMS=epoch1970ms-epoch1900ms;long
*differenceBetweenEpochs=differenceInMS/1000;
*/
InputStreamraw=null;
try{
SockettheSocket=newSocket(DEFAULT_HOST,DEFAULT_PORT);
raw=theSocket.getInputStream();
longsecondsSince1900=0;
for(inti=0;i<4;i++){
secondsSince1900=(secondsSince1900<<8)|raw.read();
}
if(raw!=null)
raw.close();
longsecondsSince1970=secondsSince1900-differenceBetweenEpochs;
longmsSince1970=secondsSince1970*1000;
returnmsSince1970;
}catch(Exceptione){
thrownewException(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
‘贰’ 如何让电脑时间与网络同步
如果时间同步失败
当您单击“立即更新”按钮时,时钟应立即同步。如果该操作失败,可能出于以下几个原因:
1.可能在此之前,你已经尝试过时间同步了。
2.没有连接到 Internet。在试图同步时钟前创建 Internet 连接。
3.个人或网络防火墙阻止时钟同步。大多数公司或组织的防火墙同一些个人防火墙一样会阻碍时钟同步。家庭用户应阅读防火墙文档以得到关于消除网络时间协议 (NTP) 障碍的信息。如果切换到了 Windows 防火墙,则应该可以同步时钟。
3.Internet 时间服务器正忙,或者暂时不可用。如果属于这种情况的话,可以试着稍后再同步您的时钟或通过双击任务栏上的时钟来手动更新。也可以试着采用另外一个不同的时间服务器。
4.计算机上显示的时间与 Internet 时间服务器的当前时间有很大的差别。如果计算机的时间与 Internet 时间服务器的时间相比,滞后值超过 15 个小时,则 Internet 时间服务器无法同步您的计算机时钟。若要正确地同步时间,请确保时间和日期设置值接近位于“控制面板”中“日期和时间属性”中的当前时间。
‘叁’ 如何调整电脑时间与网络时间同步
点击桌面右下角的时间,在弹出框内点击更改日期时间设置,
在弹出框内选择Internet选项,
点击更改设置,要同步Internet时间的前置条件是得启动你windows time服务,下面会介绍到如何启动windows的时间服务。如果windows时间服务已启动直接在弹出框点立即更新即可。
找到我的电脑,右键在弹出选项框中选择管理,会出现如下页面
找到最下面的服务和应用程序单击那个小三角,在展开选项中选择服务,会出现windows的服务
在列表中找到windows Time服务,选中之后在又上角会显示启动服务的按钮,点击启动
启动之后关于此服务右上角的操作按钮会变为停止或重新启动,如此你的电脑时间会自动跟网络同步。