1

在我的 Android 应用程序中。我每 2 小时运行一次任务。如何检查时间是否已超过 2 小时。

我尝试使用它,但它说已弃用

Date date = new Date();
date.setHours(date.getHours() + 2);

我将不胜感激有关如何实现这一点的见解?

4

6 回答 6

4

检查此链接

http://www.dotnetexpertsforum.com/comparing-date-time-values-in-android-t1567.html

Calendar current_time = Calendar.getInstance ();
current_time.add(Calendar.YEAR, 0);
current_time.add(Calendar.DAY_OF_YEAR, 0);
current_time.set(Calendar.HOUR_OF_DAY, 
//Subtract 2 hours       
current_time.get(Calendar.HOUR_OF_DAY)-2);
current_time.set(Calendar.MINUTE, 0);
current_time.set(Calendar.SECOND, 0);

Calendar given_time = Calendar.getInstance ();
given_time.set(Calendar.YEAR, syear);
//Give the day sDay and hour shour
given_time.set(Calendar.DAY_OF_YEAR, sday);
given_time.set(Calendar.HOUR_OF_DAY, shour);
given_time.set(Calendar.MINUTE, 0 );
given_time.set(Calendar.SECOND, 0);

Date current_calendar = current_time.getTime();
Date given_calendar = given_time.getTime();

System.out.println("Current Calendar "+ current_calendar);
System.out.println("Given Calendar "+ given_calendar);

boolean v = current_calendar.after(given_calendar); 

if(v){

    return true;

}
于 2013-02-15T12:57:57.670 回答
3

你应该使用这个Calendar类。

Calendar calendar=Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY)+2);
calendar.getTime();//your date +2 hours
于 2013-02-15T09:39:09.337 回答
2

使用日历类

    Calendar cal = Calendar.getInstance();
    System.out.println(cal.get(Calendar.HOUR)>(cal.get(Calendar.HOUR)+2));
于 2013-02-15T09:38:27.450 回答
0

如果您必须每两个小时重复一次该任务,您应该为此使用警报管理器服务。有关详细信息,请参阅下面的链接。

http://www.javacodegeeks.com/2012/09/android-alarmmanager-tutorial.html

于 2013-02-15T09:43:49.423 回答
0

Date已弃用。改为使用Calendar

资料来源:Java:为什么不推荐使用 Date 构造函数,而我改用什么?

于 2013-02-15T09:38:44.547 回答
0

两个小时是 2 * 60 分钟,是 2 * 60 * 60 秒,是 2 * 60 * 60 * 1000 毫秒。因此,您可以将此毫秒数添加到您的日期:

Date date = new Date ();
Date after2Hours = new Date (date.getTime () + 2L * 60L * 60L * 1000L);
于 2013-02-15T09:38:58.697 回答