• Java学习----JDK8时间类


    JDK8 时间类使用

    LocalDate

    • 构建LocalDate对象
        //        获取当前年月日
            LocalDate localDate = LocalDate.now();
        //        构建制定的年月日
            LocalDate localDate1 = LocalDate.of(2019, 10, 13);
    
    • 获取值
    //        获取年
            int year = localDate.getYear();
            int year1 = localDate.get(ChronoField.YEAR);
    
    //        获取月
            Month month = localDate.getMonth();
            int month1 = localDate.get(ChronoField.MONTH_OF_YEAR);
    
    //        获取日
            int day = localDate.getDayOfMonth();
            int day1 = localDate.get(ChronoField.DAY_OF_MONTH);
    //        获取星期
            DayOfWeek dayOfWeek = localDate.getDayOfWeek();
            int dayOfWeek1 = localDate.get(ChronoField.DAY_OF_WEEK);
    

    LocalTime

    • 构建LocalTime对象
    //        获取当前时间
            LocalTime localTime = LocalTime.now();
    //        获取指定时间
            LocalTime localTime1 = LocalTime.of(19, 55, 50);
    
    • 获取值
    //        获取时
            int hour = localTime.getHour();
            int hour1 = localTime.get(ChronoField.HOUR_OF_DAY);
    //        获取分
            int minute = localTime.getMinute();
            int minute1 = localTime.get(ChronoField.MINUTE_OF_HOUR);
    //        获取秒
            int second = localTime.getMinute();
            int second1 = localTime.get(ChronoField.SECOND_OF_MINUTE);
    

    LocalDateTime

    • 构建LocalDateTime对象
    //        获取当前年月日时分秒
            LocalDateTime localDateTime = LocalDateTime.now();
            LocalDateTime localDateTime1 = LocalDateTime.of(2019, 10, 25, 20, 20, 59);
    
    • 获取值
    //        获取LocalDate
            LocalDate localDate2 = localDateTime.toLocalDate();
    //        获取LocalTime
            LocalTime localTime2 = localDateTime.toLocalTime();
    

    Instant

    //        获取秒数
            Instant instant = Instant.now();
            long second2 = instant.getEpochSecond();
    //        获取毫秒数
            long minSecond = instant.toEpochMilli();
    

    时间增减修改

    //        增加一年
            localDateTime.plusYears(1);
            localDateTime.plus(1, ChronoUnit.YEARS);
    //        增加一个月
            localDateTime.plusMonths(1);
            localDateTime.plus(1,ChronoUnit.MONTHS);
    //        减少一天
            localDateTime.minusDays(1);
            localDateTime.minus(1,ChronoUnit.DAYS);
    
    //        修改年某个值
            localDateTime.withYear(2018);
            localDateTime.with(ChronoField.YEAR,2018);
    

    时间差

    • Duration
    //        LocalDateTime和LocalTime时间计算
            Duration duration = Duration.between(localTime,localTime1);
            duration.toDays();
            duration.toHours();
    
    • Period
    //        LocalDate时间计算
            Period period = Period.between(localDate,localDate1);
            period.getYears();
            period.getMonths();
    //        计算两个时间相差的天数
            LocalDate startDate = LocalDate.parse("2020-01-21");
            LocalDate endDate = LocalDate.parse("2020-03-01");
            endDate.toEpochDay() - startDate.toEpochDay();
    

    时间比较

    //  是否在之前
            now1.isBefore(now2);
    //  是否在之后
            now1.isAfter(now2);
    

    格式化与解析时间

    • 格式化时间
    //        格式化时间
            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy hh:mm:ss");
            String date = localDateTime.format(dateTimeFormatter);
    
    • 解析时间
    //        解析时间
            LocalDate localDate3 =  LocalDate.parse("2019-10-30");
            LocalDate localDate4 = LocalDate.parse("20191030",DateTimeFormatter.BASIC_ISO_DATE);
    //        DateTimeFormatter
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            LocalDateTime time = LocalDateTime.parse("2019-11-11 12:00:00",formatter);
    

    unix时间戳

    • 获取Unix时间戳
            LocalDateTime now= LocalDateTime.now();
            Long timeStamp = now.atZone(ZoneOffset.UTC).toInstant().toEpochMilli();//    毫秒
            // Long time = now.atZone(ZoneOffset.UTC).toEpochSecond();//    秒
    
    • 解析
            LocalDateTime time = LocalDateTime.ofEpochSecond(1577059200000L/1000,0,ZoneOffset.ofHours(0));
    
  • 相关阅读:
    快速实现一个带后端服务的 Vue 项目,用云开发Vue插件!
    做好内容安全检测,和风险说「再见」(下)!
    新能力|云调用支持微信支付啦!
    获奖结果公布|2020腾讯犀牛鸟云开发校园技术布道师养成计划
    SpringMVC原理及流程解析
    Mysql梳理-关于索引/引擎与锁
    写在庚子年之前
    Spring的BeanPostProcessor后置处理器与bean的生命周期
    AQS系列(六)- Semaphore的使用及原理
    AQS系列(五)- CountDownLatch的使用及原理
  • 原文地址:https://www.cnblogs.com/bananafish/p/11748942.html
Copyright © 2020-2023  润新知