java轻松玩转localdatetime

废话不多说,直接上代码

 //时间戳转LocalDateTime
    public static LocalDateTime getLocalDateTime(long timestamp) {
        Instant instant = Instant.ofEpochMilli(timestamp);
        ZoneId zone = ZoneId.systemDefault();
        return LocalDateTime.ofInstant(instant, zone);
    }

    //获取当月最后一天
    public static LocalDateTime getLastDayOfCurrentMonth(LocalDateTime localDateTime) {
        return localDateTime.with(TemporalAdjusters.lastDayOfMonth()).toLocalDate().atStartOfDay();
    }

    //获取当月第一天
    public static LocalDateTime getFirstDayOfCurrentMonth(LocalDateTime localDateTime) {
        return localDateTime.with(TemporalAdjusters.firstDayOfMonth()).toLocalDate().atStartOfDay();
    }

    //凌晨
    public static LocalDateTime getMorning(LocalDateTime localDateTime) {
        ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime.toLocalDate().atStartOfDay(), ZoneId.systemDefault());
        return zonedDateTime.toLocalDateTime();
    }

    //返回月份之间的月份
    public static List<String> getMonthBetween(LocalDateTime localDateTime, int minMonth, int maxMonth) {
        LocalDateTime min = localDateTime.withMonth(minMonth).with(TemporalAdjusters.firstDayOfMonth());
        LocalDateTime max = localDateTime.withMonth(maxMonth).with(TemporalAdjusters.lastDayOfMonth());
        List<String> result = new ArrayList<>();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
        while (min.isBefore(max)) {
            result.add(min.format(formatter));
            min = min.plusMonths(1);
        }
        return result;
    }

 

posted on 2019-07-19 13:53  龙猫大侠客  阅读(1216)  评论(0编辑  收藏  举报

导航