/**
* @author zhangjx
* @date 2019/8/28 17:07
*/
public class DateUtil {
private final static SimpleDateFormat SDF = new SimpleDateFormat(
"yyyyMMdd");
/**
* 最近1周获取起止日期
*
* @param date 需要参照的日期
* @param option 0 开始日期;1 结束日期
* @param k 0 包含本周 1 不包含本周
* @return String
*/
private static String getFromToDate(Date date, int option, int k) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
//判断是否为星期天,外国定义星期天是他们的第一天
if (dayOfWeek <= 0) {
dayOfWeek = 7;
}
int offset = 0 == option ? 1 - dayOfWeek : 7 - dayOfWeek;
int amount = 0 == option ? offset - k * 7 : offset - k * 7;
calendar.add(Calendar.DATE, amount);
String format = null;
try {
format = SDF.format(calendar.getTime());
} catch (Exception e) {
e.printStackTrace();
}
return format;
}
/**
* 根据当前日期获得本周的日期区间(本周周一和周日日期)
*
* @return String
*/
public static String getThisWeekTimeInterval() {
String beginDate = getFromToDate(new Date(), 0, 0);
String endDate = getFromToDate(new Date(), 1, 0);
return beginDate + "-" + endDate;
}
/**
* 根据当前日期获得上周的日期区间(上周周一和周日日期)
*
* @return String
*/
public static String getLastWeekTimeInterval() {
String beginDate = getFromToDate(new Date(), 0, 1);
String endDate = getFromToDate(new Date(), 1, 1);
return beginDate + "-" + endDate;
}
public static void main(String[] args){
System.out.println(getThisWeekTimeInterval());
}
}
运行结果: