本人从事电力行业采集数据的信息系统开发工作.在工作中,有项业务是采集数据.而采集数据过程中,有个数据采集的需要.因此使用到了整点定时器的功能。特意记录下来,与大家分享.
1. package test;
2. import java.text.SimpleDateFormat;
3. import java.util.Calendar;
4. import java.util.Date;
5. import java.util.Timer;
6. import java.util.TimerTask;
7. public class Test {
8. public static void main(String[] args) {
9. final SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
10. Calendar c = Calendar.getInstance();
11. // 整分钟已过秒
12. int tmp1 = c.get(Calendar.SECOND);
13. // 过5分钟的分钟
14. int tmp2 = c.get(Calendar.MINUTE) % 5;
15. // 存放到达5分钟整点秒
16. int seconds = (5 - tmp2) * 60 - tmp1;
17. // 调整启动时间
18. c.add(Calendar.SECOND, seconds);
19. System.out.println("定时器将在" + sdf1.format(c.getTime()) + "启动");
20. // 启动定时器
21. Timer timer1 = new Timer();
22. TimerTask task1 = new TimerTask() {
23. public void run() {
24. System.out.println(sdf1.format(new Date()));
25. }
26. };
27. timer1.schedule(task1, c.getTime(), 300 * 1000);
28. }
29. }