我正在寻找一种每次都进行预定活动的方法。例如,在 hh:00:00 我希望 java 执行命令
System.out.println("It's " + hh + " o'clock");
我以前用 Java 类 Timer 和 Calendar 做过类似的事情,现在我遇到了 Joda Time 库,我想知道 Joda Time 中是否有类似于 Timer 类的东西。
我正在寻找一种每次都进行预定活动的方法。例如,在 hh:00:00 我希望 java 执行命令
System.out.println("It's " + hh + " o'clock");
我以前用 Java 类 Timer 和 Calendar 做过类似的事情,现在我遇到了 Joda Time 库,我想知道 Joda Time 中是否有类似于 Timer 类的东西。
这些问题似乎将任务的调度与表示基础日期时间的目的混淆了。如前所述,Quartz 将是调度部分的合适解决方案。
为了尽我所能回答您的问题,从 JodaTime 的角度来看,我可以看到 API 文档中没有 Timer 实现。我倾向于将 JodaTime 视为底层机器时间线的人类表示,即系统时间以可读格式显示的内容。
对于您希望在打印中执行的操作,您可以执行以下操作:
System.out.println("It's " + new DateTime().hourOfDay() + " o'clock");;
如果您在 JodaTime 中寻找更多关于时钟/计时器的信息,我能找到的最接近的可能对您有帮助的是有一个DateTimeUtils.getMillis()
使用底层系统实现的东西,请注意您可以将其更改为您选择的不同计时器/时钟.
/**
* System millis provider.
*/
static class SystemMillisProvider implements MillisProvider {
/**
* Gets the current time.
* @return the current time in millis
*/
public long getMillis() {
return System.currentTimeMillis();
}
}
请参阅 Java 5 及更高版本中内置的 Executor 类。具体来说ScheduledExecutorService
。请参阅教程。
在 StackOverflow 上搜索许多问题和答案,了解更多信息。