package util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 日期处理类 */ public class Timer { /** * 获取某日期的上个月开始日期 * @param currentDate * @param format * @return */ public static Date getPrevMonthStartDate(String currentDate , String format){ SimpleDateFormat sdf = new SimpleDateFormat(format); Calendar c = Calendar.getInstance(); try { c.setTime(sdf.parse(currentDate)); c.add(Calendar.MONTH, -1); //设置为1号,当前日期既为本月第一天 c.set(Calendar.DAY_OF_MONTH, 1); } catch (ParseException e) { e.printStackTrace(); } return c.getTime(); } /** * 获取某日期的上个月结束日期 * @param date * @param format * @return */ public static Date getPrevMonthEndDate(String date , String format){ SimpleDateFormat sdf = new SimpleDateFormat(format); Calendar c = Calendar.getInstance(); try { c.setTime(sdf.parse(date)); c.add(Calendar.MONTH , -1); c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH)); c.set(Calendar.HOUR_OF_DAY, 23); c.set(Calendar.MINUTE, 59); c.set(Calendar.SECOND, 59); } catch (ParseException e) { e.printStackTrace(); } return c.getTime(); } /** * 获取某日期的 当前月开始日期 * @param currentDate * @param format * @return */ public static Date getMonthStartDate(String currentDate , String format){ SimpleDateFormat sdf = new SimpleDateFormat(format); Calendar c = Calendar.getInstance(); try { c.setTime(sdf.parse(currentDate)); c.add(Calendar.MONTH, 0); //设置为1号,当前日期既为本月第一天 c.set(Calendar.DAY_OF_MONTH, 1); } catch (ParseException e) { e.printStackTrace(); } return c.getTime(); } /** * 获取某日期的 当前月结束日期 * @param date * @param format * @return */ public static Date getMonthEndDate(String date , String format) { SimpleDateFormat sdf = new SimpleDateFormat(format); Calendar c = Calendar.getInstance(); try { c.setTime(sdf.parse(date)); c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH)); c.set(Calendar.HOUR_OF_DAY, 23); c.set(Calendar.MINUTE, 59); c.set(Calendar.SECOND, 59); } catch (ParseException e) { e.printStackTrace(); } return c.getTime(); } }