调用方法:
import timer.MyTimerTask; import java.util.Calendar; import java.util.Date; import java.util.Timer; public class Main { private static final long PERIOD_DAY = 24 * 60 * 60 * 1000; public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); /*** 定制每日23点50分执行方法 ***/ calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 50); calendar.set(Calendar.SECOND, 0); Date sendDate = calendar.getTime(); if (sendDate.before(new Date())) { sendDate = addDay(sendDate, 1); } Timer timer = new Timer(); timer.schedule(new MyTimerTask(), sendDate, PERIOD_DAY); } // 增加或减少天数 public static Date addDay(Date date, int num) { Calendar startDT = Calendar.getInstance(); startDT.setTime(date); startDT.add(Calendar.DAY_OF_MONTH, num); return startDT.getTime(); } }
执行器MyTimerTask.java:
package timer; import deal.BlogDeal; import deal.MovieDeal; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.TimerTask; public class MyTimerTask extends TimerTask { private static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override public void run() { System.out.println(formatter.format(Calendar.getInstance().getTime()) + ":当天定时任务开始"); BlogDeal.insertToday(MovieDeal.getToday()); System.out.println(formatter.format(Calendar.getInstance().getTime()) + ":当天定时任务结束"); } }