基礎代碼:get
Calendar currentTime = Calendar.getInstance(); io
currentTime.setTime(new Date()); event
int currentHour = currentTime.get(Calendar.SECOND);基礎
currentTime.set(Calendar.SECOND, currentHour + 20);//第一(大於20秒):currentHour + 20;第二(小於20秒):currentHour - 20;第三(等於當前):currentHour
currentTime.set(Calendar.MILLISECOND, 0); 定時任務
Date NextHour = currentTime.getTime();im
解釋:項目
NextHour時間
1*60*1000:週期爲一分鐘time
-----------------------------------------------------------------------------------------------------------------------let
一、timer.scheduleAtFixedRate(task, firstTime, period)的實驗
timer.scheduleAtFixedRate(new MyHourOnlineTask(event.getServletContext()),NextHour,1*60*1000);
實驗結果:
假設條件:項目啓動ok後的時間爲2015-01-08 10:00:00!
第一:2015-01-08 10:00:20時定時任務會執行一次,以後從2015-01-08 10:00:20開始計算,每隔1分鐘執行一次。
第二:2015-01-08 10:00:00時定時任務會執行一次,以後從2015-01-08 10:00:40開始計算,每隔1分鐘執行一次。
第三:2015-01-08 10:00:00時定時任務會執行一次,每隔1分鐘執行一次。
備註 timer.scheduleAtFixedRate(new MyHourOnlineTask(event.getServletContext()),0,1*60*1000);時,2015-01-08 10:00:00時定時任務會執行一次,每隔1分鐘執行一次。
二、timer.schedule(task, firstTime, period)的實驗
實驗結果:
假設條件:項目啓動ok後的時間爲2015-01-08 10:00:00!
第一:2015-01-08 10:00:20時定時任務會執行一次,以後從2015-01-08 10:00:20開始計算,每隔1分鐘執行一次。
第二:2015-01-08 10:00:00時定時任務會執行一次,每隔1分鐘執行一次。
第三:2015-01-08 10:00:00時定時任務會執行一次,每隔1分鐘執行一次。
備註 timer.schedule(new MyHourOnlineTask(event.getServletContext()),0,1*60*1000);時,2015-01-08 10:00:00時定時任務會執行一次,每隔1分鐘執行一次。