java定时器问题

来源:互联网 发布:sql数据库培训多少钱 编辑:程序博客网 时间:2024/06/05 04:23

定时器定下时间后,启动定时器时会判断定时器预定的时间如果已经过了,则会立即执行定时任务。

所以在写定时器时最好加上自己的判断若时间过了,则设置到第二天。

//得到时间类        Calendar date = Calendar.getInstance();        //设置时间为 xx-xx-xx 00:00:00        Date now = new Date();        if(now.getHours()>6){            date.set(date.get(Calendar.YEAR), date.get(Calendar.MONTH), date.get(Calendar.DATE)+1, 6, 30, 0);//设置为第二天这个点        }else{            date.set(date.get(Calendar.YEAR), date.get(Calendar.MONTH), date.get(Calendar.DATE), 6, 30, 0);//设置为当天天这个点        }        //一天的毫秒数        long daySpan = 24 * 60 * 60 * 1000;        //得到定时器实例        Timer t = new Timer();        //使用匿名内方式进行方法覆盖        t.schedule(new TimerTask() {                public void run() {                //定时执行任务块                },date.getTime(), daySpan); //daySpan是12小时的毫秒数,也是执行间隔    }
原创粉丝点击