慎用Date的after和before
慎用Date的after和before
JackMo2015 发表于11个月前
慎用Date的after和before
  • 发表于 11个月前
  • 阅读 22
  • 收藏 0
  • 点赞 0
  • 评论 0

华为云·免费上云实践>>>   

摘要: 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

 

 

共有 人打赏支持
粉丝 2
博文 90
码字总数 37969
×
JackMo2015
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: