簡體   English   中英

java在特定時間使用計時器調度任務

[英]java scheduling task with timer at specific time

我有一個數據庫,可以從中檢索顯示提醒的時間(這是我的任務)。 我將其接收到的時間放入計時器中,但它不是在此時顯示提醒,而是在當前時間顯示提醒。 問題是什么?

rs = stmt.executeQuery(sql);
while(rs.next()){
   time=rs.getString   ("time");
}
timer = new Timer(); // Instantiate Timer Object
timer.schedule(new Task(), timeFormat.parse(time));

例如,顯示提醒的時間是17:10:00。 但顯示在17:00:00

首先,您必須獲取currentDatetime和hinterDatetime之間的時間差bt並獲取毫秒數,然后在timer.schedule(new Task(),timediff)函數中傳遞該毫秒數。 就像下面一樣

private long ScheduleTime(String strpostDate) {

    long hrs = 0;
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    Date curDate = null;
    Date postDate = null;
    String curdate = formatter.format(new Date());
    try {
        curDate = (Date) formatter.parse(curdate);
        postDate = (Date) formatter.parse(strpostDate);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


    long diffInMs = postDate.getTime() - curDate.getTime();
    return diffInMs;

}

你的職能

rs = stmt.executeQuery(sql);
while(rs.next()){
datetime=rs.getString   ("time");
}
timer = new Timer(); // Instantiate Timer Object
timer.schedule(new Task(), ScheduleTime(datetime));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM