日期比较
compareTo
注意:要先将日期转换为字符串类型toString()一下
// 比较最大日期与当前日期
String maxDate = "1990-01-01"
Date date = new Date();
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String nowDate = format.format(date);
if (maxDate.compareTo(nowDate) > 0) {
System.out.println("最大日期大于当前日期");
} else if(maxDate.compareTo(nowDate) < 0) {
System.out.println("最大日期小与当前日期");
} else {
System.out.println("最大日期等于当前日期");
}
if (maxDate.compareTo(nowDate) >= 0) {
System.out.println("最大日期大于等于当前日期");
}
date1.before(date2),date1.after(date2)
注意:要讲字符串转换为日期类型parse()一下
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date bt=sdf.parse(beginTime);
Date et=sdf.parse(endTime);
if (bt.before(et)){
System.out.println("表示bt小于et ");
}else{
System.out.println("表示bt大于et ");
}
Date1.after(Date2)
//当Date1大于Date2时,返回TRUE,当小于等于时,返回false;
//即当Date2日期比Date1小时候为true,否则为false
Date1.before(Date2)
//当Date1小于Date2时,返回TRUE,当大于等于时,返回false;
获取指定日期相隔n天的日期
获取指定日期(包含1号)的前一天
java获取指定日期的前一天,之前的一些工具类,可以正常获取某个日期的前一天,但是如果是1号的前一天,就容易出错,最后终于找到了一个合适的工具类!
/**
* 获取指定日期的前n天
* @author wangz
* @param specifiedDay,n
* @return
*/
public static String getBeforeDay(String specifiedDay,int n)
{
Calendar c = Calendar.getInstance();
Date date = null;
try
{
date = new SimpleDateFormat("yyyy-MM-dd").parse(specifiedDay);
}
catch (ParseException e)
{
e.printStackTrace();
}
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day + n);
String dayBefore = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
return dayBefore;
}