展开全部
你这个很简单,不需要转成long再比较,java.util.Date已经62616964757a686964616fe59b9ee7ad9431333363376530有after()、before()等方法来比较两个时间的先后顺序了。示例代码如下:/**
* 检测一个时间是否在一个时间区间之内
* @param start 有效的开始时间
* @param end 有效的结束时间
* @param check 待检测时间
* @return
*/
public boolean checkValidDay(Date start,Date end,Date check){
if(check.after(start) && check.before(end)){
return true;
}else{
return false;
}
}
@Test
public void test() throws ParseException{
String validStartDayStr = "20170501"; //有效的开始时间
String validEndDayStr = "20171231"; //有效的结束时间
String testDay1Str = "20160101"; //测试时间1
String testDay2Str = "20170720"; //测试时间2
String testDay3Str = "20181230"; //测试时间3
DateFormat format = new SimpleDateFormat("yyyyMMdd");
Date startDay = format.parse(validStartDayStr);
Date endDay = format.parse(validEndDayStr);
Date testDay1 = format.parse(testDay1Str);
Date testDay2 = format.parse(testDay2Str);
Date testDay3 = format.parse(testDay3Str);
System.out.println(checkValidDay(startDay, endDay, testDay1));
System.out.println(checkValidDay(startDay, endDay, testDay2));
System.out.println(checkValidDay(startDay, endDay, testDay3));
}
测试代码输出如下:false
true
false