慎用Date的after和before

Date1.after(Date2),當Date1大於Date2時,返回TRUE,當小於等於時,返回false; 
Date1.before(Date2),當Date1小於Date2時,返回TRUE,當大於等於時,返回false; 
若是業務數據存在相等的時候,並且相等時也須要作相應的業務判斷或處理時,請注意。 
若是有這樣的需求,在某個日期內的業務check,那麼你須要使用:!Date1.after(Date2)

或以下:java

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;
}

比較兩個日期spa

// 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);

運行結果:code

Comparison Result:-1
Comparison2 Result:1
Comparison3 Result:0
相關文章
相關標籤/搜索