Date中有after、before、equals方法来比较日期
如果A大于等于B,那么A.after(B)返回true,A.before(B)返回false
如果A小于等于B,那么A.after(B)返回false,A.before(B)返回true
public static Date str2Date(final String str, String format) throws ParseException {
if (null == str || "".equals(str)) {
return null;
}
if (null == format || "".equals(format)) {
format = DATE_FORMAT;
}
String dtStr = format.length() < str.length() ? str.substring(0, format.length()) : str;
SimpleDateFormat sdf = new SimpleDateFormat(format);
sdf.setLenient(false);
Date date = null;
date = sdf.parse(dtStr);
if (format == DEFAULT_FORMART || date2Str(date, format).equals(dtStr)) {
return date;
} else {
throw new ParseException(str, 0);
}
}
public static void main(String[] args) throws ParseException {
System.out.println("2017年09月08日 after 2017年09月09日:"
+ DateUtils.str2Date("20170908").after(DateUtils.str2Date("20170909")));
System.out.println("2017年09月09日 after 2017年09月09日:"
+ DateUtils.str2Date("20170909").after(DateUtils.str2Date("20170909")));
System.out.println("2017年09月10日 after 2017年09月09日:"
+ DateUtils.str2Date("20170910").after(DateUtils.str2Date("20170909")));
System.out.println("2017年09月08日 before 2017年09月09日:"
+ DateUtils.str2Date("20170908").before(DateUtils.str2Date("20170909")));
System.out.println("2017年09月09日 before 2017年09月09日:"
+ DateUtils.str2Date("20170909").before(DateUtils.str2Date("20170909")));
System.out.println("2017年09月10日 before 2017年09月09日:"
+ DateUtils.str2Date("20170910").before(DateUtils.str2Date("20170909")));
System.out.println("2017年09月08日 equals 2017年09月09日:"
+ DateUtils.str2Date("20170908").equals(DateUtils.str2Date("20170909")));
System.out.println("2017年09月08日 equals 2017年09月09日:"
+ DateUtils.str2Date("20170909").equals(DateUtils.str2Date("20170909")));
}
输出结果
2017年09月08日 after 2017年09月09日:false
2017年09月09日 after 2017年09月09日:false
2017年09月10日 after 2017年09月09日:true
2017年09月08日 before 2017年09月09日:true
2017年09月09日 before 2017年09月09日:false
2017年09月10日 before 2017年09月09日:false
2017年09月08日 equals 2017年09月09日:false
2017年09月08日 equals 2017年09月09日:true