public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 设置日期格式 Date date1 = null; try { date1 = sdf.parse("2021-03-07 02:08:38"); } catch (ParseException e) { e.printStackTrace(); } String strTime = sdf.format(date1); // 格式转换 System.out.println(strTime); System.out.println(sdf.format(DateUtil.getStartTimeOfLastMonth(date1)));//指定时间的上个月开始时间 System.out.println(sdf.format(DateUtil.getLastMonthEndTime(date1)));//指定时间的上个月最后一天
}
1,指定时间的上个月开始时间
/** * 获得上个月的开始时间 * @param date * @return */ public static Date getStartTimeOfLastMonth(Date date){ Date thisMonthStartTime = getStartTimeOfMonth(date); Calendar cal = Calendar.getInstance(); cal.setTime(thisMonthStartTime); cal.add(Calendar.MONTH, -1); return cal.getTime(); }
2,指定时间的上个月最后一天
/** * 获得上个月的结束时间 * @return */ public static Date getLastMonthEndTime(Date date) { String timeZone = "GMT+8:00"; Calendar calendar = Calendar.getInstance();// 获取当前日期 calendar.setTimeZone(TimeZone.getTimeZone(timeZone)); calendar.setTimeInMillis(date.getTime()); calendar.add(Calendar.YEAR, 0); calendar.add(Calendar.MONTH, -1); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));// 获取当前月最后一天 calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); calendar.set(Calendar.MILLISECOND, 999); return calendar.getTime(); }