timer.scheduleAtFixedRate(function_to_execute, 0, 5000);
我已阅读上面的示例,但我想在特定日期和时间启动该功能,例如2013/01/13,13:15 pm。
如何设置timer.scheduleAtFixedRate
参数?
非常感谢你。
答案 0 :(得分:1)
scheduleAtFixedRate
方法已超载。
第一:
public void scheduleAtFixedRate(TimerTask task,
Date firstTime,
long period)
第二个(你的代码使用了这个):
public void scheduleAtFixedRate(TimerTask task,
long delay,
long period)
因此,要在特定时间运行,您可以使用pass Date
对象作为第二个参数。
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);
答案 1 :(得分:1)
您需要将DateTime转换为Long值,然后在延迟时间参数中使用此Long值。
以下是将日期转换为long值的示例,将datetime转换为Long值的方法与在delay time参数中使用此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 );
感谢。