//Java获取前一月份 protected String getLastMonth(int count) { LocalDate today = LocalDate.now(); today = today.minusMonths(count); DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM"); return formatters.format(today); }
/** * 获取上个月最后一天 * * @param * @return */ public static Date getLastDayOfMonth() { Calendar calendar = Calendar.getInstance(); int month=calendar.get(Calendar.MONTH); calendar.set(Calendar.MONTH, month-1); //将小时至23 calendar.set(Calendar.HOUR_OF_DAY, 23); //将分钟至59 calendar.set(Calendar.MINUTE, 59); //将秒至59 calendar.set(Calendar.SECOND,59); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); return calendar.getTime(); }
/** * 获取上个月第一天 * * @return */ public static Date getFirstDayOfMonth() { Calendar calendar = Calendar.getInstance(); int month=calendar.get(Calendar.MONTH); calendar.set(Calendar.MONTH, month-1); //将小时至23 calendar.set(Calendar.HOUR_OF_DAY, 0); //将分钟至59 calendar.set(Calendar.MINUTE, 0); //将秒至59 calendar.set(Calendar.SECOND,0); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); return calendar.getTime(); }
//获取当前月最后一天 public static Date getLastDayOfMonth(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int lastDay = calendar.getActualMaximum(Calendar.DATE); calendar.set(Calendar.DAY_OF_MONTH, lastDay); return calendar.getTime(); }
/** * 获取当前月第一天 * @param date * @return */ public static Date getLastDayOfMonth(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int lastDay = calendar.getActualMinimum(Calendar.DATE); calendar.set(Calendar.DAY_OF_MONTH, lastDay); return calendar.getTime(); }
//计算两个时间之间相差的月份数 public static Integer getDifMonth(Date startDate, Date endDate){ Calendar start = Calendar.getInstance(); Calendar end = Calendar.getInstance(); start.setTime(startDate); end.setTime(endDate); int result = end.get(Calendar.MONTH) - start.get(Calendar.MONTH); int month = (end.get(Calendar.YEAR) - start.get(Calendar.YEAR)) * 12; return Math.abs(month + result); }
/** * 判断该日期是否是该月的第一天 * * @param date * 需要判断的日期 * @return */ public boolean isFirstDayOfMonth(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); System.out.println(calendar.get(Calendar.MONTH)); return calendar.get(Calendar.DAY_OF_MONTH) == 1;
/** * 判断该日期是否是该月的最后一天 * * @param date * 需要判断的日期 * @return */ public boolean isLastDayOfMonth(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.DAY_OF_MONTH) == calendar .getActualMaximum(Calendar.DAY_OF_MONTH); }
/** * 计算两个时间相差的 年 月 天 * @throws ParseException */ public void calculateYMD() throws ParseException { Date date = new Date(); Instant instant = date.toInstant(); ZoneId zoneId = ZoneId.systemDefault(); // atZone()方法返回在指定时区从此Instant生成的ZonedDateTime。 LocalDate localDate = instant.atZone(zoneId).toLocalDate(); String a="2023-3-04"; Date parse = new SimpleDateFormat("yyyy-MM-dd").parse(a); Instant instant1 = parse.toInstant(); ZoneId zoneId1 = ZoneId.systemDefault(); // atZone()方法返回在指定时区从此Instant生成的ZonedDateTime。 LocalDate localDate1 = instant1.atZone(zoneId1).toLocalDate(); Period period = Period.between(localDate1,localDate ); System.out.println(period.getMonths()); System.out.println(period.getDays()); System.out.println(period.getYears()); }