我需要帮助检查以下与日期和时间有关的条件。。。
Calendar cal = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
String CurrentDate= dateFormat.format(cal.getTime());
StringModifiedDate=dateTime取自日期时间选择器小部件
我必须检查一下:
当前ModifiedDate不小于当前时间的5分钟
如何在Android/Java中检查此条件。。。。。。。。。。?
为什么要设置日期格式?
用"自然"表示法处理数据比用字符串表示法处理要容易得多。目前还不清楚您修改后的日期是否有作为字符串,但如果有,您应该做的第一件事就是解析。然后,您可以使用将其与当前日期和时间进行比较
// 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
/Calendar
更好的日期/日期API。
要检查给定时间是否在当前时间之前/之后,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;
}
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")));