long daySpan = 24 * 60 * 60 * 1000; //一天执行一次 // 规定的每天时间14:30:00运行 final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd '14:30:00'"); // 首次运行时间 Date startTime = null; try { startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(sdf.format(new Date())); } catch (ParseException e) { e.printStackTrace(); } // 如果今天的已经过了 首次运行时间就改为明天 //if(System.currentTimeMillis() > startTime.getTime()) // startTime = new Date(startTime.getTime() + daySpan); Timer t = new Timer(); TimerTask task = new TimerTask(){ @Override public void run() { // 要执行的代码 System.err.println("xxxxxxxxx"); } }; // 以每24小时执行一次 t.scheduleAtFixedRate(task, startTime, daySpan);
t.scheduleAtFixedRate(task, startTime, daySpan);
第一个参数是执行体TimeTask,第二个是开始时间,第三个是重复执行时间