java 日期相关计算获取
public static void main(String[] args) { Date date = new Date(); String dateStr = "2019-01-07"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { date = sdf.parse(dateStr); } catch (ParseException e) { e.printStackTrace(); } //获取月份中的第一天 Calendar cdMin = Calendar.getInstance(); cdMin.setTime(date); cdMin.set(Calendar.DAY_OF_MONTH,cdMin.getActualMinimum(Calendar.DAY_OF_MONTH)); String monthLast = sdf.format(cdMin.getTime()); System.out.println("这个月的第一天:"+monthLast); //获取月份中的最后一天 Calendar cd = Calendar.getInstance(); cd.setTime(date); cd.set(Calendar.DAY_OF_MONTH,cd.getActualMaximum(Calendar.DAY_OF_MONTH)); String monthLastDate = sdf.format(cd.getTime()); System.out.println("这个月的最后一天:"+monthLastDate); //获取这个日期年所在的天数 Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int week = calendar.get(Calendar.DAY_OF_WEEK); //如果是周天的话就要减去一天,不然就会跳到下周一 if(1== week){ calendar.add(Calendar.DAY_OF_MONTH, -1); } calendar.setFirstDayOfWeek(Calendar.MONDAY); int week1 = calendar.get(Calendar.DAY_OF_WEEK); calendar.add(Calendar.DATE,calendar.getFirstDayOfWeek()- week1); String weekStr = sdf.format(calendar.getTime()); System.out.println("这个日期是一周中的第:"+week1+"天"); System.out.println("这个日期所在的周一是:"+weekStr); //在这个日期加一天 Calendar calendarAdd = Calendar.getInstance(); calendarAdd.setTime(date); calendarAdd.add(Calendar.DAY_OF_WEEK,1); String dateAddOne = sdf.format(calendarAdd.getTime()); System.out.println("当前时间是:"+dateStr+",加一天后是:"+dateAddOne); //这个日期减一天 Calendar calendarCutOne = Calendar.getInstance(); calendarCutOne.setTime(date); calendarCutOne.add(Calendar.DAY_OF_MONTH,-1); String dateCutOne = sdf.format(calendarCutOne.getTime()); System.out.println("当前时间是:"+dateStr+",减一天后是:"+dateCutOne); //这个日期在年中的周数 Calendar calendarWeek = Calendar.getInstance(); calendarWeek.setTime(date); int year = calendarWeek.getWeekYear(); //先设置周一为周的第一天 int firstWeek = calendarWeek.get(Calendar.MONDAY); if(1 == firstWeek){ calendarWeek.add(Calendar.DAY_OF_MONTH,-1); } calendarWeek.setFirstDayOfWeek(Calendar.MONDAY); int yearWeek = calendarWeek.get(Calendar.WEEK_OF_YEAR); System.out.println("当前年为:"+year +",这个日期所在年的第"+yearWeek+"周"); }