package soapTest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.TimeZone;
import java.util.Timer;
import java.util.TimerTask;
import org.apache.commons.lang.time.DateFormatUtils;
public class RunOnTime {
//DateOperator dateOperator = new DateOperator();
static int count = 0;
private static String timeType = "HH";
private static String runTime = "23";
public static void main(String[] args) {
// TODO Auto-generated method stub
operateOnTime ();
}
public static void operateOnTime() {
// 定时执行的任务
TimerTask task = new TimerTask() {
@Override
public void run() {
// 在此代码内调用要执行任务的代码 ...
// System.out.println(Calendar.getInstance ().getTime());
//现在时间
String nowTime = DateFormatUtils.format(System.currentTimeMillis(), timeType);
try {
//现在时间和规定时间比较
int isTime = compareStringTimestamp(nowTime, runTime);
if(isTime!=0){
System.out.println("执行时间还没到");
}else if(isTime==0){
System.out.println("执行时间到了");
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
// 创建一个定时器
Timer timer = new Timer();
// 设置在多长时间以后执行,然后每个多长时间重复执行
// 设值 5 秒钟后开始执行第一次,以后每隔 2 秒中执行一次
// timer.schedule(task, 5 * 1000, 2 * 1000);
// 设置从某一时刻开始执行,然后每隔多长时间重复执行
// 设置从当前时间开始执行,然后每个 2 秒中执行
timer.schedule(task, Calendar.getInstance ().getTime(), 2 * 1000);
}
/**
* 比较时间先后
* @param times1
* @param times2
* @return 1:times1>times2;-1:times1<times2;0:times1=times2
* @throws ParseException
*/
public static int compareStringTimestamp(String times1,String times2) throws ParseException{
SimpleDateFormat df = new SimpleDateFormat("HH");
java.util.Date dt1 = df.parse(times1);
java.util.Date dt2 = df.parse(times2);
if (dt1.getTime() > dt2.getTime()) {
return 1;
} else if (dt1.getTime() < dt2.getTime()) {
return -1;
} else {
return 0;
}
}
}
java 定时器
最新推荐文章于 2023-03-29 15:42:47 发布