您的位置:首页 > 理论基础 > 计算机网络

获取网络日期时间,并设置本机系统日期时间

2016-04-11 15:28 549 查看
/**

     * 获取指定网站的日期时间

     *

     * @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);

                    

                }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息