LocalDateTime 时间 Api 操作大全

181 阅读1分钟

1、转换操作

//        LocalDateTime 转字符串
        String format = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS[SSS]"));

//        字符串转 LocalDateTime
        LocalDateTime parse = LocalDateTime.parse("2021-01-02 10:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

//        Date 转 LocalDateTime
        LocalDateTime localDateTime = new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();

//        LocalDateTime 转 Date
        Date from = Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant());

//        获取默认时区
        ZoneOffset currentZone = OffsetDateTime.now().getOffset();
        ZoneId newZone = ZoneId.of("Australia/Darwin");
//        转化成其他时区的时间
        LocalDateTime localDateTime = LocalDateTime.now().atZone(currentZone).withZoneSameInstant(newZone).toLocalDateTime();

2、获取操作


//        获取当前是几号
        System.out.println(LocalDateTime.now().getDayOfMonth());
//        获取星期几 返回是一个枚举类型
        System.out.println(LocalDateTime.now().getDayOfWeek());
//        获取今天的小时部分
        System.out.println(LocalDateTime.now().getHour());

3、差值操作


        Duration between = Duration.between(LocalDateTime.now(), LocalDateTime.now().plusDays(4));
//        计算两个时间之间的毫秒数
        System.out.println(between.toMillis());
//        将当前时间相加 4 天
        System.out.println(LocalDateTime.now().plusDays(4));
//        将当前时间相减 4 天
        System.out.println(LocalDateTime.now().minusDays(4));
//        将当前时间与 4 天后的时间比较,判断当前时间是否在 4 天后,显而易见是返回 false 的
        System.out.println(LocalDateTime.now().isAfter(LocalDateTime.now().plusDays(4)));

//        如果年月日都相同,比较结果返回的是 -1 0 1
//        如果年相同(日不同 | 日相同)则返回的是月份之间的差值
//        如果月份相同则返回的是日之间的差值
//        如果年不同则返回的是年之前的差值
        System.out.println(LocalDateTime.now().compareTo(LocalDateTime.now().plusMonths(25)));