慎用Date的after和before

Date1.after(Date2),当Date1大于Date2时,返回TRUE,当小于等于时,返回false; 
Date1.before(Date2),当Date1小于Date2时,返回TRUE,当大于等于时,返回false; 
如果业务数据存在相等的时候,而且相等时也需要做相应的业务判断或处理时,请注意。 
如果有这样的需求,在某个日期内的业务check,那么你需要使用:!Date1.after(Date2)

或如下:

Date start=ECSDateUtils.toDate(policy.getSTARTDATE(),"yyyyMMdd");
Date end=ECSDateUtils.toDate(policy.getENDDATE(),"yyyyMMdd");
SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
Date now=ECSDateUtils.toDate(sf.format(new Date()),"yyyyMMdd");
logger.info("验证系统当前时间是否处于保单开始时间与截至时间之间chdrnum:"+chdrnum);
/**start<=now<=end*/
if(now.compareTo(start)>=0 && end.compareTo(now)>=0){
	logger.info("赠送资格在合法时间内!chdrnum:"+chdrnum);
}else {
	logger.info("赠送资格已经过期!chdrnum:"+chdrnum);
	erromsg="赠送资格已过期!";
	return erromsg;
}

比较两个日期

// create two dates
Date date = new Date(98, 5, 21);
Date date2 = new Date(99, 1, 9);

// make 3 comparisons with them
int comparison = date.compareTo(date2);
int comparison2 = date2.compareTo(date);
int comparison3 = date.compareTo(date);

// print the results
System.out.println("Comparison Result:" + comparison);
System.out.println("Comparison2 Result:" + comparison2);
System.out.println("Comparison3 Result:" + comparison3);

运行结果:

Comparison Result:-1
Comparison2 Result:1
Comparison3 Result:0

 

 

转载于:https://my.oschina.net/u/2277088/blog/804282

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值