0

我需要帮助来检查以下与日期和时间相关的条件......

Calendar cal = Calendar.getInstance(); 
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");

String CurrentDate= dateFormat.format(cal.getTime());

String ModifiedDate = dateTime 取自日期 n 时间选择器小部件;

我必须检查:

current ModifiedDate 不小于当前时间的 5 分钟

如何在 Android / Java 中检查这个条件............?

4

3 回答 3

1

为什么要格式化日期?

以“自然”表示而不是字符串表示来处理数据要容易得多。目前尚不清楚您的修改日期是否必须被视为字符串,但如果是,您应该做的第一件事就是解析它。然后,您可以使用以下方法将其与当前日期和时间进行比较:

// Check if the value is later than "now"
if (date.getTime() > System.currentTimeMillis())

或者

// Check if the value is later than "now + 5 minutes"
if (date.getTime() > System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(5))

不清楚您所说的“当前 ModifiedDate 不小于当前时间的 5 分钟”是什么意思-您的意思是指它不小于 5 分钟,还是不小于 5 分钟,或者类似的东西-但您应该能够更改上面的代码来处理您的要求。

如果您进行大量日期/时间操作,我强烈建议使用Joda Time,它是比java.util.Date/更好的日期/时间 API Calendar

于 2013-01-16T06:51:05.893 回答
0

要检查给定时间是否在当前时间之前/之后,Android中有一个日历实例......来比较日期时间值。

Calendar current_time = Calendar.getInstance ();

current_time.add(Calendar.DAY_OF_YEAR, 0);

current_time.set(Calendar.HOUR_OF_DAY, hrs);

current_time.set(Calendar.MINUTE, mins );

current_time.set(Calendar.SECOND, 0);


Calendar given_time = Calendar.getInstance ();

given_time.add(Calendar.DAY_OF_YEAR, 0);

given_time.set(Calendar.HOUR_OF_DAY, hrs);

given_time.set(Calendar.MINUTE, mins );

given_time.set(Calendar.SECOND, 0);


current_time.getTime();

given_time.getTime();


boolean v = current_calendar.after(given_calendar);


// it will return true if current time is after given time


if(v){

return true;

}
于 2013-01-16T06:48:35.117 回答
0
public static boolean getTimeDiff(Date dateOne, Date dateTwo) {
    long timeDiff = Math.abs(dateOne.getTime() - dateTwo.getTime());
    int day =   (int) TimeUnit.MILLISECONDS.toHours(timeDiff);
    int min=    (int) ( TimeUnit.MILLISECONDS.toMinutes(timeDiff) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(timeDiff)));
    if(day>1)
    {
        return false;
    }
    else if(min>5)
    {
        return false;
    }
    else
    {
        return true;
    }
}

用法:

System.out.println(getTimeDiff(new Date("01/13/2012 12:05:00"),new Date("01/12/2012 13:00:00")));
于 2013-01-16T06:53:22.313 回答