Java8 日期及时间API

参考书籍《Java8 实战》

LocalDate

日期类

        // 日期类
        LocalDate date = LocalDate.of(2020, 10, 11);
        System.out.println(date.getYear() +"-"+ date.getMonthValue() +"-"+ date.getDayOfMonth());
        // 获取当前日期
        LocalDate now = LocalDate.now();

字符串转为localdate

        // 将字符串转为LocalDate
        LocalDate parse = LocalDate.parse("2020-10-01");
        System.out.println(parse);

LocalTime

时间类

        LocalTime time = LocalTime.of(10, 10, 10);
        System.out.println(time.getHour() +":"+ time.getMinute() +":"+ time.getSecond());

字符串转为localTime

        // 将字符串转为LocalTime
        LocalTime time1 = LocalTime.parse("13:10:10");
        System.out.println(time1);

LocalDateTime

日期时间类

        // 日期时间类
        LocalDateTime localDateTime = LocalDateTime.now();
        // 转为日期类
        LocalDate localDate = localDateTime.toLocalDate();
        // 转为时间类
        LocalTime localTime = localDateTime.toLocalTime();

Instant

计算时间戳

        // 获取时间戳
        Instant instant = Instant.now();
        // 以秒为单位的时间戳
        System.out.println(instant.getEpochSecond());

Duration

计算时间间隔

       LocalDateTime now1 = LocalDateTime.now();
        Thread.sleep(1000);
        LocalDateTime now2 = LocalDateTime.now();
        System.out.println(Duration.between(now1, now2).getSeconds());

Period

计算日期间隔

        LocalDate date1 = LocalDate.of(2020, 10, 11);
        LocalDate date2 = LocalDate.of(2020, 10, 13);
        System.out.println(Period.between(date1, date2).getDays());

操作日期类

直接修改年月日等

        LocalDate date = LocalDate.of(2020, 10, 11);
        // 将年改为2019
        LocalDate localDate = date.withYear(2019);
        System.out.println(localDate);
        // 将月改为9
        LocalDate localDate1 = date.withMonth(8);
        System.out.println(localDate1);
        LocalDate localDate2 = date.with(ChronoField.MONTH_OF_YEAR, 9);
        System.out.println(localDate2);

相对修改日期

        // 当前日期加一周
        LocalDate date2 = date.plusWeeks(1);
        System.out.println(date2);
        // 当前日期减去3年
        LocalDate date3 = date.minusYears(3);
        System.out.println(date3);
        LocalDate date4 = date3.plus(6, ChronoUnit.MONTHS);
        System.out.println(date4);

操作日期的方法

TemporalAdjusters

更加个性化的操作日期

        // 求出这个月的第一天
        LocalDate date5 = date.with(TemporalAdjusters.firstDayOfMonth());
        System.out.println(date5);

格式化日期 

        // 格式化为字符串
        // 20201011
        System.out.println(date.format(DateTimeFormatter.BASIC_ISO_DATE));
        // 2020-10-11
        System.out.println(date.format(DateTimeFormatter.ISO_LOCAL_DATE));

        // 字符串格式化为日期
        LocalDate date1 = LocalDate.parse("20201011",
                DateTimeFormatter.BASIC_ISO_DATE);
        System.out.println(date1);

根据某个模式格式化时间

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
        LocalDate now = LocalDate.now();
        // 转为dd/MM/yyyy格式
        String format = now.format(formatter);
        System.out.println(format);

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值