获取昨天日期字符串
获取本周所在第一天
获取上周第一天,最后一天
获取本月第一天
获取当前季度
package com.bochao.cim.school.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * @author liangyi * @date 2022/10/14 */ public class DateUtil { static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); //获取昨天日期字符串 public static String getYestDayStr() { //获取当前日期 Date date = new Date(); //将时间格式化成yyyy-MM-dd HH:mm:ss的格式 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); //创建Calendar实例 Calendar cal = Calendar.getInstance(); //设置当前时间 cal.setTime(date); //同理增加一天的方法: cal.add(Calendar.DATE, -1); return format.format(cal.getTime()); } //获取本周第一天 public static String getWeekFirstDay() throws ParseException { Date time = dateFormat.parse(getYestDayStr()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式 Calendar cal = Calendar.getInstance(); cal.setTime(time); // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了 int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天 if (1 == dayWeek) { cal.add(Calendar.DAY_OF_MONTH, -1); } System.out.println("要计算日期为:" + sdf.format(cal.getTime())); // 输出要计算日期 cal.setFirstDayOfWeek(Calendar.MONDAY);// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一 int day = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天 cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值 String imptimeBegin = sdf.format(cal.getTime()); System.out.println("所在周星期一的日期:" + imptimeBegin); return imptimeBegin; } //获取本月第一天 public static String getMonthFirstDay() throws ParseException { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date date = dateFormat.parse(getYestDayStr()); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.DAY_OF_MONTH, 1); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); String month = dateFormat.format(calendar.getTime()); System.out.println("获取本月第一天" + month); return month; } // 获得上周星期一的日期 public static String getPreviousWeekday() throws ParseException { Date time = dateFormat.parse(getYestDayStr()); Calendar cal = Calendar.getInstance(); cal.setTime(time); // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了 int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天 if (1 == dayWeek) { cal.add(Calendar.DAY_OF_MONTH, -1); } System.out.println("要计算日期为:" + dateFormat.format(cal.getTime())); // 输出要计算日期 cal.setFirstDayOfWeek(Calendar.MONDAY);// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一 int day = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天 cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day - 7);// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值 String imptimeBegin = dateFormat.format(cal.getTime()); System.out.println("上周星期一的日期:" + imptimeBegin); return imptimeBegin; } // 获得上周星期日的日期 public static String getPreviousWeekSunday() throws ParseException { Date time = dateFormat.parse(getYestDayStr()); Calendar cal = Calendar.getInstance(); cal.setTime(time); // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了 int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天 if (1 == dayWeek) { cal.add(Calendar.DAY_OF_MONTH, -1); } System.out.println("要计算日期为:" + dateFormat.format(cal.getTime())); // 输出要计算日期 cal.setFirstDayOfWeek(Calendar.MONDAY);// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一 int day = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天 cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day - 1);// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值 String imptimeBegin = dateFormat.format(cal.getTime()); System.out.println("上周星期日的日期:" + imptimeBegin); return imptimeBegin; } //获取当前季度 public static String getCurrentQuarter() throws ParseException { Calendar calendar = Calendar.getInstance(); calendar.setTime(dateFormat.parse(getYestDayStr())); int mouth = calendar.get(Calendar.MONTH) + 1; if (mouth >= 2 && mouth <= 4) { return "1"; } else if (mouth >= 5 && mouth <= 7) { return "2"; } else if (mouth >= 8 && mouth <= 10) { return "3"; } else { return "4"; } } }