首页 > 编程知识 正文

转载java定时器时间配置,java实现定时器的四种方式

时间:2023-12-27 15:09:11 阅读:323186 作者:RSLM

本文目录一览:

java定时器执行时间问题

写个Demo,你要的应该是这个吧。

//获得当天的日期

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");

Date date = new Date();

//定义开始时间字符串

String timeStr = "08:00:00";

timeStr = sdf.format(date)+timeStr;

//获得当天的指定时间的date对象

sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

date = sdf.parse(timeStr);

//判断今天的执行时间是否已经过去,如果过去则改为明天

if(date.getTime()System.currentTimeMillis()){

date = new Date(date.getTime()+24*60*60*1000);

}

TimerTask task = new TimerTask(){

@Override

public void run() {

//your task

}

};

Timer timer = new Timer();

timer.schedule(task, date, 24*60*60*1000);

java 定时器

配置web.xml

listener

listener-classcom.yohn.timer.ExecTimer/listener

/listener

********************************************************************

java源文件

package com.yohn.timmer;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.util.Date;

import java.util.Timer;

import java.util.TimerTask;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

public class SetTimerExecute extends TimerTask implements ServletContextListener

{

public void contextDestroyed(ServletContextEvent arg0)

{

System.out.println("服务器停止");

}

public void contextInitialized(ServletContextEvent arg0)

{

System.out.println("服务器启动");

//新建一个时间控件

Timer t = new Timer();

//指定的任务从指定的延迟后开始进行重复的固定延迟执行。

t.schedule(new SetTimerExecute(),1000,1000);

}

public void run()

{

FileWriter fs = null;

BufferedWriter buf = null;

try

{

File f = new File("/test.txt");

if (!f.exists())

f.createNewFile();

fs = new FileWriter(f,true);

buf = new BufferedWriter(fs);

//每天上午7点写入到文件

if(new Date().getHours()==7)

{

SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");

System.out.print("起床啦!起床啦!");

f.write("定时打印:" + myFormatter.format(new Date();));

buf.newLine();

}

}

catch (Exception e)

{

e.printStackTrace();

}

finally

{

try

{

buf.flush();

fs.close();

}

catch (IOException e)

{

}

}

}

}

java定时器 时间间隔

开启一个线程,run的主代码如下:

for(int index=0; index30; index++) {

    //do something;

    if(index6)

        TimeUnit.MINUTES.sleep(10);

    else if(index12)

        TimeUnit.MINUTES.sleep(20);

    else

        TimeUnit.HOURS.sleep(1);

    }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。