LocalDate工具

134 阅读1分钟

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);
}

}