//这是我的定时器类,用来定时执行某段任务; package com.my.time;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;public class BugXmlTimer {public Timer timer;public void timerStart(){timer = new Timer();Date datetime=new Date();Date midnightDate=new Date();SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try {midnightDate = sdf2.parse(sdf1.format(datetime) " 23:00:00");} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}long in=midnightDate.getTime()-datetime.getTime();System.out.println("before task");//立刻执行,然后每隔30s执行一次timer.schedule(new BugXmlTimerTask(), 0,30000);}public void timerStop(){if(timer!=null)timer.cancel();}public static void main(String[] args){BugXmlTimer myTimer=new BugXmlTimer();// TODO Auto-generated method stubmyTimer.timerStart();}}//这是执行任务的类,即每隔一段时间要做的事情在这里package com.my.time;import java.util.TimerTask;public class BugXmlTimerTask extends TimerTask {@Overridepublic void run() {System.out.print("run task");}}//以下是出发定时操作的类,该类实现了ServletContextListenerpublic class MyTimerListener implements ServletContextListener {private BugXmlTimer mytimer = new BugXmlTimer ();public void contextInitialized(ServletContextEvent event) {mytimer.timerStart();}public void contextDestroyed(ServletContextEvent event) {mytimer.timerStop();}}然后在web.xml里部署一下,即可在程序启动后运行定时器了!