这里说的日期是指字符串的日期格式,如“2014-10-15”,我们要判断这个日期是否在今天之前,网上看到好多判断的方法,都是拿这个日期转换成Date对象 然后与new Date()比较,使用comparetTo() 或者before()方法,其实这样做都会有点小问题,这样做忽略了一个小时分钟的比较,会出现错误,得不到正确的结果。
如果要得到正确的结果,应该将当前时间new Date() 转换成“yyyy-MM-dd”的格式,然后在将两者转换成date进行判断,代码如下:
java.util.Date nowdate = new java.util.Date();
String date = DateUtils.formatDate(nowdate, "yyyy-MM-dd");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd",
Locale.CHINA);
Date d;
try {
d = sdf.parse(dateFormat);
int flag = d.compareTo(DateUtils
.formatDateFromeString(date));
if (flag >= 0) {//当天及当天之后,<0就是在日期之前
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}