❶ java怎么根据用户设定的时间执行定时任务
// 一天的毫秒数
long daySpan = 24 * 60 * 60 * 1000;
// 规定的每天时间15:33:30运行
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd '15:33:30'");
// 首次运行时间
Date startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(sdf.format(new Date()));
// 如果今天的已经过了 首次运行时间就改为明天
if(System.currentTimeMillis() > startTime.getTime())
startTime = new Date(startTime.getTime() + daySpan);
Timer t = new Timer();
TimerTask task = new TimerTask(){
@Override
public void run() {
// 要执行的代码
System.err.println("xxxxxxxxx");
}
};
// 以每24小时执行一次
t.scheleAtFixedRate(task, startTime, daySpan);
❷ java怎么在经过指定时间再执行方法
Java中的Timer类可以实现经过指定时间再执行方法,Timer方法如下:
schele(TimerTasktask,Datetime)//安排在指定的时间执行指定的任务。
schele(TimerTasktask,longdelay)//安排在指定延迟后执行指定的任务。
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
❸ JAVA中如何实现定时(是在某个特定的时间,如每天的14:00)运行某断代码
这个可以稍微转换一下思路,只要获取一下目标时间,再减去当前时间,获取间隔T
然后再调用 Timer中的schele 隔T时间运行,一切搞定。
❹ java程序中,如何控制每次循环在指定的时间间隔内执行
表示没看懂问题,如果想在某一个时间点执行可以用timer时间控制器,如果想控制循环可以用break、continue、return,他们分别表示: 退出循环、退出本次循环继续执行下一个、退出方法
❺ java怎么指定某段代码在固定时间点前执行
packagethread.timer;
importjava.util.Calendar;
importjava.util.Timer;
importjava.util.TimerTask;
publicclassTimerTest{
publicstaticvoidmain(String[]args){
Timert=newTimer();
TimerTasktask=newTimerTask(){
@Override
publicvoidrun(){
System.out.println("Taskisprocessing.");//此处可以插入自己想运行的代码片段
}
};
Calendarc=Calendar.getInstance();
c.set(Calendar.MINUTE,26);//时间可以自己设置
t.schele(task,c.getTime());
}
}
❻ java 有什么方法让指定的任务在每天指定的时间段内反复执行吗
让程序一直执行,但是在执行任务的时候通过时间段来控制。比如任务是在晚上1点来执行,那程序上就判断一下当当前的时间大于设定的时间就执行该任务,如果不是则直接退出
❼ java 如何设定时间执行程序
用Timer可以实现~~
Timer的schele方法可以指定第一次运行的时刻,和重复间隔
具体可以参考API
timer.schele(task, firstTime, period)
指定firstTime为21:00:00,period为一天的毫秒数24*3600*1000就成了。。
或者可以自己写个线程,放个while循环,每分钟检查一次,如果到时间了就执行任务,如果没到就sleep一分钟。。当然,这种方法比较土。。
更复杂点的可以借助现有的包,比如quartz,有兴趣可以研究下~~
❽ java 有什么方法让指定的任务在每天指定的时间段内反复执行吗
package thread;
import java.util.*;
import org.apache.log4j.Logger;
public class Thread_timing extends Thread{
static Logger logger = Logger.getLogger(Thread_timing.class);
// 构造函数为私有类型,只能在函数内部定义
private Thread_timing() {
}
// 用单一模式,只能创建一个对象
private static Thread_timing Thread_timing = new Thread_timing();
// 定义一个静态对象,用来取类的唯一对象,
public static Thread_timing getThread_timing() {
// 获取线程的状态
String state = Thread_timing.getState().toString();
System.out.println("定时线程状态:"+state);
if (state.equals("NEW") || state.equals("TERMINATED")) {
Thread_timing = new Thread_timing();
}
return Thread_timing;
}
UpdateCityUsering ucu = new UpdateCityUsering();
UpdateUserAddressing uua = new UpdateUserAddressing();
XiaFaTiming xft = new XiaFaTiming();
liShiHuiZong ls = new liShiHuiZong();
public void run(){
System.out.println("定时线程已启动");
while(true){
Calendar date = Calendar.getInstance();
int hour = date.get(Calendar.HOUR_OF_DAY);
//当到达8点
while(hour ==8){
//添加业务逻辑
//等待1小时
try {
Thread.sleep(3600);
} catch (InterruptedException e) {
e.printStackTrace();
}
break;
}
try {
Thread.sleep(60000);//每隔一分钟检测一次,看看时间到了没
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String []arg){
Thread_timing thr=new Thread_timing();
thr.start();
}
}
❾ java中怎么判断定时器的任务在指定的时间内已经执行完成
一般都是通过日志打印
譬如run方法里面加入以下
log.info("定时器启动,时间:"+new Date())
try{
}catch(){
log.error("出现异常")
return;
}
log.info("定时器结束,时间:"+new Date())
当日志打印有结束语句就证明跑完了
❿ Java 怎么在指定的时间内执行某一任务
可以通过死循环的方式来进行实现:第一步就是获取到当前的时间,之后和需要执行的时间进行比较,找出时间差,先让线程停止,之后到时见开始执行死循环,执行完成之后再设置线程等待时间,之后重复执行即可,代码举例如下:
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String str = sdf.format(date);
//此处实现更改为其余的时间
Thread.sleep(睡觉的时间);
for(;;){
//执行某一个方法
//此处实现更改为其余的时间
Thread.sleep(睡觉的时间);
}
备注:上面的部分代码已经有说明,直接根据说明实现即可。这个只是一种简单的实现思路,通常复杂的都需要quazter来实现。