获取当前时间,设置对象时间并进行比较

时间:2013-09-05 09:26:55

标签: java

我正在尝试使用

获取当前时间
Date date = new Date().getHours();

但我发现它已经在SE 7中被删除了。而且我正在尝试创建一个Date对象,然后只使用

设置它的小时数。
Date date = new Date().setHours();

这也被弃用了。让我列出我想做的事情:我希望在早上午夜到早上5点之间运行一个过程。我要这样做(或者想做任何事情)的方法是创建两个变量。一个表示开始时间(午夜),另一个表示停止时间(早上5点)。

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

所有这些方法的实现(希望我知道背后的原因),目前在SE 7中最好的方法是什么?

PS - 因为我只关心时间,是否甚至需要使用Date类而不是其他东西?

3 个答案:

答案 0 :(得分:4)

您可以使用日历实例处理此问题。

Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR, 5); //hours to add

答案 1 :(得分:2)

有更好的选择,例如CalendarTimerTasks,但如果您想管理日期,可以使用以下内容:

final long FIVE_HOURS = 5 * 60 * 60 * 1000;
Date startTime = new Date();
Date endTime = new Date(startTime.getTime() + FIVE_HOURS);

答案 2 :(得分:1)

使用Joda Time。它是一个非常优越的Date和Time API,我的理解是它将成为Java 8下核心Java库的一部分(如果我在这里错了,请纠正我)。

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

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

new DateTime().setHoursOfDay(hours);

它比日历更快,更有效。


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