* 获取指定网站的日期时间
*
* @param webUrl
* @return
* @author SHANHY
* @date 2015年11月27日
*/
private static Date getWebsiteDatetime(String webUrl){
try {
URL url = new URL(webUrl);// 取得资源对象
URLConnection uc = url.openConnection();// 生成连接对象
uc.connect();// 发出连接
long ld = uc.getDate();// 读取网站日期时间
Date date = new Date(ld);// 转换为标准时间对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);// 输出北京时间
// return sdf.format(date);
return date;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 通过获取多个网站的日期时间进行判断 提升获取的日期时间的准确性
* @return
*/
public static Date getWebDatetime(){
String webUrl2 = "http://www.baidu.com";//百度
String webUrl3 = "http://www.taobao.com";//淘宝
String webUrl4 = "http://www.ntsc.ac.cn";//中国科学院国家授时中心
String webUrl5 = "http://www.360.cn";//360
String webUrl6 = "http://www.beijing-time.org";//beijing-time
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
Date date2=Get11x5Data.getWebsiteDatetime(webUrl2);
Date date3=Get11x5Data.getWebsiteDatetime(webUrl3);
Date date4=Get11x5Data.getWebsiteDatetime(webUrl4);
Date date5=Get11x5Data.getWebsiteDatetime(webUrl5);
Date date6=Get11x5Data.getWebsiteDatetime(webUrl6);
String datetime2=sdf.format(date2);
String datetime3=sdf.format(date3);
String datetime4=sdf.format(date4);
String datetime5=sdf.format(date5);
String datetime6=sdf.format(date6);
// System.out.println("【getWebDatetime】date2"+datetime2);
// System.out.println("【getWebDatetime】date3"+datetime3);
// System.out.println("【getWebDatetime】date4"+datetime4);
// System.out.println("【getWebDatetime】date5"+datetime5);
// System.out.println("【getWebDatetime】date6"+datetime6);
if(datetime2.equals(datetime3) && datetime2.equals(datetime4)){
return date2;
}else if(datetime3.equals(datetime4) && datetime3.equals(datetime5)){
return date3;
}else if(datetime4.equals(datetime5) && datetime4.equals(datetime6)){
return date4;
}else if(datetime2.equals(datetime3)){
return date2;
}else if(datetime2.equals(datetime4)){
return date2;
}else if(datetime2.equals(datetime5)){
return date2;
}else if(datetime2.equals(datetime6)){
return date2;
}else if(datetime3.equals(datetime4)){
return date3;
}else if(datetime3.equals(datetime5)){
return date3;
}else if(datetime3.equals(datetime6)){
return date3;
}else if(datetime4.equals(datetime5)){
return date4;
}else if(datetime4.equals(datetime6)){
return date4;
}else if(datetime5.equals(datetime6)){
return date5;
}
return null;
}
//在某个时间开始获取网络时间日期,并设置本地时间
Date nowDate=new Date();//获取当前系统日期时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowDateStr=sdf.format(nowDate);
String time = nowDateStr.substring(11,16); //截取当前时间
//每天早晨九点设置本机系统时间为网络时间
if("09:00".equals(time)){
Date nowNetWorkDate=getWebDatetime();//获取当前网络日期时间
String str=sdf.format(nowNetWorkDate);
String dateStr=str.substring(0, 10);//截取当前网络日期
String timeStr=str.substring(11, 19);//截取桑倩网络时间
//windows系统设置日期时间
Runtime.getRuntime().exec("cmd /c date "+dateStr);
Runtime.getRuntime().exec("cmd /c time "+timeStr);
}