1 使用JDK获取当前所在星期的星期一
/** * 取本周7天的第一天(周一的日期) */ public static Date getNowWeekBegin() { int mondayPlus; Calendar cd = Calendar.getInstance(); // 获得今天是一周的第几天,星期日是第一天,星期二是第二天...... int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK) - 1; // 因为按中国礼拜一作为第一天所以这里减1 if (dayOfWeek == 1) { mondayPlus = 0; } else { mondayPlus = 1 - dayOfWeek; } GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus); Date monday = currentDate.getTime(); monday = DateUtils.truncate(monday, Calendar.DATE); return monday; }
2 使用jode time 获取当前所在星期的星期一
获取本周星期一所在日期的零点时刻,时分秒为0, 比如:2016/10/17 0:0:0
public DateTime getNowWeekMonday() { DateTime date = DateTime.now(); int dayOfWeek = date.getDayOfWeek(); return DateTime.parse(date.minusDays(dayOfWeek - 1).toString("yyyy-MM-dd")); }
更简单
date = LocalDate.now().dayOfWeek().withMinimumValue().toDate();