0

我正在尝试使用当前时间

Date date = new Date().getHours();

但我看到它在 SE 7 中已被弃用。我也在尝试创建一个 Date 对象,然后使用它设置小时数

Date date = new Date().setHours();

这也已被弃用。让我列出我想做的事情:我想在午夜到凌晨 5 点之间运行一个进程。我将这样做(或无论如何都想做)的方式是创建两个变量。一个指示开始时间(午夜),另一个指示停止时间(早上 5 点)。

然后,我将每 5 分钟循环一次程序,获取当前时间并将其与开始时间和停止时间进行比较,看看它是否介于这两个时间之间。然后启动我想要运行的进程。

因此,通过所有这些方法贬低(希望我知道其背后的原因),目前在 SE 7 中最好的方法是什么?

PS - 由于我只关心时间,甚至有必要使用 Date 类而不是其他东西吗?

4

3 回答 3

4

您可以使用日历实例来处理这个问题。

Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR, 5); //hours to add
于 2013-09-05T09:29:48.170 回答
2

有更好的选择,如CalendarTimerTasks,但如果你想用日期管理,你可以使用类似的东西:

final long FIVE_HOURS = 5 * 60 * 60 * 1000;
Date startTime = new Date();
Date endTime = new Date(startTime.getTime() + FIVE_HOURS);
于 2013-09-05T09:32:52.137 回答
1

使用乔达时间。它是一个非常优秀的日期和时间 API,我的理解是它将成为 Java 8 下核心 Java 库的一部分(如果我在这里错了,请纠正我)。

核心类是 DateTime,你可以做这样的事情

int hours = new DateTime().getHoursOfDay();

new DateTime().setHoursOfDay(hours);

它比日历更快、更高效。


刚刚注意到你的 PS - Joda 还有一个名为LocalTime的类,如果你只关心时间而不关心日期,它应该是完美的

于 2013-09-05T09:33:36.273 回答