业务需求:获取昨天,前天,以及上月同期时间的数据
首先我想到的是使用日期类Calendar去处理,Calender是java自带的一个用于日历的类,方便处理此类的时间问题.
在处理上月同期的时候我遇到了一个问题,就是假如我这个月的时间是7.31号,但是我去获取上月同期的话,应该是6.31号,但是很明显6月是没有31号的,这个应该怎么去实现了.
我的思路是这样首先判断这个当前时间是否为31号,如果是,那么判断上月的天数,当他是30天的时候,让获取到的同期日期去指向30号.
但是当我实现后,我再次使用Calendar去获取的时候,我发现Calendar自身就有这样的操作,合着我上面自己写的白写了.
首先我写了一个工具类用于方便去获取时间
public class DateUtil {
private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
/**
* 获取上月同期
* @return
*/
public static String getLastMonthForDay(){
Calendar instance = Calendar.getInstance();
instance.add(Calendar.MONTH,-1);
String format = simpleDateFormat.format(instance.getTime());
return format;
}
/**
* 获取前天
* @return
*/
public static String getBeforeYesterday(){
Calendar instance = Calendar.getInstance();
instance.add(Calendar.DATE,-2);
String format = simpleDateFormat.format(instance.getTime());
return format;
}
/**
* 获取昨天
* @return
*/
public static String getYesterday(){
Calendar instance = Calendar.getInstance();
instance.add(Calendar.DATE,-1);
String format = simpleDateFormat.format(instance.getTime());
return format;
}
}