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

/**
     * 获取指定网站的日期时间
     *
     * @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);
                    
                }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值