❶ 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來實現。