求高手指点一二,我需要用java编写一个定时器,每天8点开始执行,每一个小时执行一次,过了晚上12点停止

如题所述

ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
        service.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
               if(当前时间>8点){
                   dowork();//你要做的事
               }
               if(当前时间>12点){
                   this.cancel();
               }
            }
        }, 0, 1, TimeUnit.HOURS);

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-15
这个是要看写的复杂的好点,还是简单的烂代码。
如果是简单的烂代码,写个死循环,获取当前时间,如果时间到了你想要的时候就执行你想要执行的方法。

如果要写的好点。起一个线程,线程里给个死循环,获取当前时间,如果为你想要的时间,就另外起一个线程跑你要的程序,如果不是则当前线程睡30秒或者1分钟什么的。本回答被网友采纳
第2个回答  2013-08-29
直接用spring-quartz不是更简单
第3个回答  2013-08-26
用时间调度框架吧。。包你满意
第4个回答  2013-08-26
可以使用Timer完成