1
timer.scheduleAtFixedRate(function_to_execute, 0, 5000);

我已经阅读了上面的示例,但我想在特定日期和时间启动该功能,例如 2013/01/13, 13:15pm。

如何设置timer.scheduleAtFixedRate参数?

太感谢了。

4

2 回答 2

1

scheduleAtFixedRate方法已重载。

第一的 :

public void scheduleAtFixedRate(TimerTask task,
                                Date firstTime,
                                long period)

第二(你的代码使用了这个):

public void scheduleAtFixedRate(TimerTask task,
                                long delay,
                                long period)

因此,要在特定时间运行,您可以使用 pass Dateobject 作为第二个参数。

Date date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss a", Locale.ENGLISH).parse("2013/01/13 13:15 pm");
timer.scheduleAtFixedRate(function_to_execute, date, 5000);

更多:Timer.scheduleAtFixedRate

于 2013-02-14T02:29:04.827 回答
1

您需要将 DateTime 转换为 Long 值,然后在延迟时间参数中使用此 Long 值。

这是将日期转换为长值的示例,与将日期时间转换为长值并在延迟时间参数中使用此长值的方式相同。

String str_date="11-June-07";
  DateFormat formatter ; 
  Date date ; 
  formatter = new SimpleDateFormat("dd-MMM-yy");
  date = (Date)formatter.parse(str_date); 
  long longDate=date.getTime();
  System.out.println("Today is " +longDate );

谢谢。

于 2013-02-14T02:30:55.570 回答