public static void main(String[] args) { LocalDate generateDate = LocalDate.now().plusDays(-1); System.out.println(generateDate.format(LocalDateUtil.FORMATTER_YYYYMMDD)); }
public class LocalDateUtil {
public static final DateTimeFormatter FORMATTER_YYYYMM = DateTimeFormatter.ofPattern("yyyyMM");
public static final DateTimeFormatter FORMATTER_YYYYMMDD = DateTimeFormatter.ofPattern("yyyyMMdd");
/**
* 获取上个月的开始日期YYYYMMDD
*/
public static LocalDate getLastMonthStart() {
LocalDate date = LocalDate.now();
date = date.plusMonths(-1);
return date.with(TemporalAdjusters.firstDayOfMonth());
}
/**
* 获取上个月的结束日期YYYYMMDD
*/
public static LocalDate getLastMonthEnd() {
LocalDate date = LocalDate.now();
date = date.plusMonths(-1);
return date.with(TemporalAdjusters.lastDayOfMonth());
}
/**
* 将LocalDate 转成 Date
*
* @param date LocalDate
* @return Date
*/
public static Date toDateOfStart(LocalDate date) {
LocalDateTime endTime = LocalDateTime.of(date, LocalTime.MIN);
ZoneId zone = ZoneId.systemDefault();
Instant instant = endTime.atZone(zone).toInstant();
return Date.from(instant);
}
/**
* 将LocalDate 转成 Date
*
* @param date LocalDate
* @return Date
*/
public static Date toDateOfEnd(LocalDate date) {
LocalDateTime endTime = LocalDateTime.of(date, LocalTime.MAX);
ZoneId zone = ZoneId.systemDefault();
Instant instant = endTime.atZone(zone).toInstant();
return Date.from(instant);
}
/**
* Date 转成 LocalDate
*
* @param date 日期
* @return LocalDate
*/
public static LocalDate toLocalDate(Date date) {
Instant instant = date.toInstant();
ZoneId zone = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
return localDateTime.toLocalDate();
}
/**
* 计算现在到零点剩下的seconds
*
* @return seconds
*/
public static long calTodayLastSeconds() {
LocalDateTime now = LocalDateTime.now();
LocalDateTime end = LocalDate.now().plusDays(1).atStartOfDay();
return ChronoUnit.SECONDS.between(now, end);
}
}