办法调用

try {    // 每天12点执行定时工作    timing("12:00:00");} catch (ParseException e) {    e.printStackTrace();}

办法体

/*** @param time 每天几点执行定时工作   24小时制工夫 例: 08:00:00  20:00:00* @throws ParseException*/private void timing(String time) throws ParseException {    int hour = Integer.parseInt(time.substring(0, 2));    SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");    SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    // 获取以后小时    Calendar calendar = Calendar.getInstance();    calendar.setTime(new Date());    int currentHour = calendar.get(Calendar.HOUR_OF_DAY);    long delayTime;    long currentTime = System.currentTimeMillis();    if (currentHour < hour) {    // 延时工夫 = 当天8点-以后工夫    String currentDay = format1.format(new Date());    long currentDay8 = format2.parse(currentDay + " " + time).getTime();    delayTime = currentDay8 - currentTime;    } else if (currentHour == hour) {        delayTime = 0;    } else {        // 延时工夫 = 今天8点-以后工夫        Date date = new Date();        Calendar c = Calendar.getInstance();        c.setTime(date);        c.add(Calendar.DATE, 1);        String nextDay = format1.format(c.getTime());        long nextDay8 = format2.parse(nextDay + " " + time).getTime();        delayTime = nextDay8 - currentTime;    }    TimerTask task = new TimerTask() {        @Override        public void run() {        //TODO 执行工作        }    };    Timer timer = new Timer(true);    timer.schedule(task, delayTime, 24 * 60 * 60 * 1000);    }