http://blog.csdn.net/tingqier/article/details/3052198 (推荐使用下面那个)
//这是我的定时器类,用来定时执行某段任务;
- 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 block
- e.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 stub
- myTimer.timerStart();
- }
- }
- package com.my.time;
- import java.util.TimerTask;
- public class BugXmlTimerTask extends TimerTask {
- @Override
- public void run() {
- System.out.print("run task");
- }
- }
- public 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里部署一下,即可在程序启动后运行定时器了!
- <listener>
- <listener-class>com.my.time.MyTimerListener </listener-class>
- </listener>
http://blog.csdn.net/zlp5201/article/details/7163678(这个可以定时2点执行)
来自:http://www.jsprun.net/thread-35542-4-1.html
参考:http://blog.csdn.net/yangzl2008/article/details/7045369
java定时任务,每天定时执行任务