LocalDateTime相关API用法

//LocalDateTime转String
LocalDateTime dateTime = LocalDateTime.now();
DateTimeFormatter fmt24 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");       
String dateStr24 = dateTime.format(fmt24);      
System.out.println("LocalDateTime转String[pattern](24小时制):"+dateStr24)

//localDateTime转localDate
localDate = dateTime.toLocalDate()

//获取当前时间本月的第一天和最后一天时间
    public static final String MinTime = "T00:00:00";
    public static final String MaxTime = "T23:59:59.999999999";
    /**
     * 本月的开始时间
     * @param today 当前时间
     * @param isFirst [true 表示开始时间,false表示结束时间]
     */
    public static LocalDateTime getStartOrEndDayOfMonth(LocalDate today, Boolean isFirst){
        String time = MinTime;
        Month month = today.getMonth();
        int length = month.length(today.isLeapYear());
        if (isFirst) {
            today = LocalDate.of(today.getYear(), month, 1);
        } else {
            today = LocalDate.of(today.getYear(), month, length);
            time = MaxTime;
        }
        return LocalDateTime.parse(today.toString() + time);
    }

//获取当前时间的上个月或下个月时间
LocalDateTime lastDateTime = dateTime.minus(1,ChronoUnit.MONTHS);
LocalDateTime lastDateTime = dateTime.plus(1,ChronoUnit.MONTHS);

//将LocalDateTime转化为年月
String date = LocalDateTime.now().getYear()+String.format("%02d", LocalDateTime.now().getMonthValue());
"%02d":month格式化为至少2位十进制整数 
例如:月份为5,输出"05";月份为11,输出"11"
//date和localDateTime互转
date -> localDateTime:
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.now();
ZonedDateTime zdt = localDateTime.atZone(zoneId);
Date date = Date.from(zdt.toInstant());

localDateTime -> date
LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault())

 

posted on 2020-09-04 11:35  jped  阅读(1234)  评论(0编辑  收藏  举报