1、获取某周周一时间
/**
* 获取某周周一 ,返回格式为yyyy-MM-dd,以当前时间为基准准
* @param num 0时为本周周一,-1为上周周一,1为下周周一
* @return
*/
public static String getFirstDayOfWeek(Integer num) {
SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_DATE);
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.WEDNESDAY, num);
calendar.set(Calendar.DAY_OF_WEEK, 2);
return sdf.format(calendar.getTime());
}
2、获取某月1号
/**
* 获取某月1号,返回时间格式为yyyy-MM-dd,以当前时间为基准
* @param num 0时为本月1号,-1为上月1号,1为下月1号
* @return
*/
public static String getFirstDayOfMouth(Integer num) {
SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_DATE);
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, num);
calendar.set(Calendar.DAY_OF_MONTH, 1);
return sdf.format(calendar.getTime());
}
3、获取某年1月1号
/**
* 获取某年1月1号,返回时间格式为yyyy-MM-dd,以当前时间为基准
* @param num 0时为当前年1月1号,-1为上一年1月1号,1为下一年1月1号
* @return
*/
public static String getFirstDayOfYear(Integer num) {
SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_DATE);
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, num);
calendar.set(Calendar.DAY_OF_YEAR, 1);
return sdf.format(calendar.getTime());
}
4、Calendar中add()和set()的区别
add(int field, int value)
field 表示日历字段即:年、月、日,value 表示该字段值的变化;
set(int field,int value)
field 表示被改变的字段,value 该值被直接赋值于field字段上。
add是在指定的时间字段上进行加减,set是在指定字段上直接赋值。