java时间框架接口Temporal及其常用实现类Instant、LocalDateTime

我们常用的时间对象类基本都继承了时间框架接口Temporal,这里我们展示一下两个实现类Instant和LocalDateTime的常用方法

@Test
    public void java_Time_Instant_Test(){
        //获取Instant对象
        Instant instant1 = Instant.now();
        Instant instant2 = Instant.parse("2021-04-19T13:37:07.752Z");
        //获取指定时间字段
        int micro = instant2.get(ChronoField.MICRO_OF_SECOND);
        int milli = instant2.get(ChronoField.MILLI_OF_SECOND);
        int nano = instant2.get(ChronoField.NANO_OF_SECOND);
        //比较时间前后相等
        boolean after = instant2.isAfter(instant1);
        boolean before = instant2.isBefore(instant1);
        //增加或减去一段时间
        Instant plus3 = instant2.plus(1, ChronoUnit.DAYS);
        Instant plus4 = instant2.plus(1, ChronoUnit.HOURS);
        Instant plus5 = instant2.plus(1, ChronoUnit.MINUTES);
        Instant plus6 = instant2.plus(1, ChronoUnit.SECONDS);
        Instant plus7 = instant2.plus(1, ChronoUnit.NANOS);

        Instant minus3 = instant2.minus(1, ChronoUnit.DAYS);
        Instant minus4 = instant2.minus(1, ChronoUnit.HOURS);
        Instant minus5 = instant2.minus(1, ChronoUnit.MINUTES);
        Instant minus6 = instant2.minus(1, ChronoUnit.SECONDS);
        Instant minus7 = instant2.minus(1, ChronoUnit.NANOS);
        //计算到另一个日期的时间换算成指定时间单位的值
        long until3 = instant2.until(instant1, ChronoUnit.DAYS);
        long until4 = instant2.until(instant1, ChronoUnit.HOURS);
        long until5 = instant2.until(instant1, ChronoUnit.MINUTES);
        long until6 = instant2.until(instant1, ChronoUnit.SECONDS);
        long until7 = instant2.until(instant1, ChronoUnit.NANOS);
        //更改指定时间字段
        Instant with5 = instant2.with(ChronoField.MICRO_OF_SECOND, 2);
        Instant with6 = instant2.with(ChronoField.MILLI_OF_SECOND, 2);
        Instant with7 = instant2.with(ChronoField.NANO_OF_SECOND, 2);
    }
    @Test
    public void java_Time_LocalDateTime_Test() {
        //生成LocalDateTime对象
        LocalDateTime localDateTime1 = LocalDateTime.now();
        LocalDateTime localDateTime2 = LocalDateTime.of(2021, 1, 1, 13, 1, 1, 1);
        LocalDateTime localDateTime3 = LocalDateTime.parse("2022-04-19T21:12:51.531");
        //获取指定时间字段
        int year1 = localDateTime2.get(ChronoField.YEAR);
        int year2 = localDateTime2.get(ChronoField.YEAR_OF_ERA);
        int month = localDateTime2.get(ChronoField.MONTH_OF_YEAR);
        int day = localDateTime2.get(ChronoField.DAY_OF_MONTH);
        int hour = localDateTime2.get(ChronoField.HOUR_OF_DAY);
        int minute = localDateTime2.get(ChronoField.MINUTE_OF_HOUR);
        int second = localDateTime2.get(ChronoField.SECOND_OF_MINUTE);
        int nano = localDateTime2.get(ChronoField.NANO_OF_SECOND);
        //比较时间前后相等
        boolean after = localDateTime2.isAfter(localDateTime1);
        boolean before = localDateTime2.isBefore(localDateTime1);
        boolean equal = localDateTime2.isEqual(localDateTime1);
        //增加或减去一段时间
        LocalDateTime plus1 = localDateTime2.plus(1, ChronoUnit.YEARS);
        LocalDateTime plus2 = localDateTime2.plus(1, ChronoUnit.MONTHS);
        LocalDateTime plus3 = localDateTime2.plus(1, ChronoUnit.DAYS);
        LocalDateTime plus4 = localDateTime2.plus(1, ChronoUnit.HOURS);
        LocalDateTime plus5 = localDateTime2.plus(1, ChronoUnit.MINUTES);
        LocalDateTime plus6 = localDateTime2.plus(1, ChronoUnit.SECONDS);
        LocalDateTime plus7 = localDateTime2.plus(1, ChronoUnit.NANOS);

        LocalDateTime minus1 = localDateTime2.minus(1, ChronoUnit.YEARS);
        LocalDateTime minus2 = localDateTime2.minus(1, ChronoUnit.MONTHS);
        LocalDateTime minus3 = localDateTime2.minus(1, ChronoUnit.DAYS);
        LocalDateTime minus4 = localDateTime2.minus(1, ChronoUnit.HOURS);
        LocalDateTime minus5 = localDateTime2.minus(1, ChronoUnit.MINUTES);
        LocalDateTime minus6 = localDateTime2.minus(1, ChronoUnit.SECONDS);
        LocalDateTime minus7 = localDateTime2.minus(1, ChronoUnit.NANOS);
        //计算到另一个日期的时间换算成指定时间单位的值
        long until1 = localDateTime2.until(localDateTime1, ChronoUnit.YEARS);
        long until2 = localDateTime2.until(localDateTime1, ChronoUnit.MONTHS);
        long until3 = localDateTime2.until(localDateTime1, ChronoUnit.DAYS);
        long until4 = localDateTime2.until(localDateTime1, ChronoUnit.HOURS);
        long until5 = localDateTime2.until(localDateTime1, ChronoUnit.MINUTES);
        long until6 = localDateTime2.until(localDateTime1, ChronoUnit.SECONDS);
        long until7 = localDateTime2.until(localDateTime1, ChronoUnit.NANOS);
        //更改指定时间字段
        LocalDateTime with1 = localDateTime2.with(ChronoField.YEAR, 2022);
        LocalDateTime with2 = localDateTime2.with(ChronoField.MONTH_OF_YEAR, 2);
        LocalDateTime with3 = localDateTime2.with(ChronoField.DAY_OF_MONTH, 2);
        LocalDateTime with4 = localDateTime2.with(ChronoField.HOUR_OF_DAY, 14);
        LocalDateTime with5 = localDateTime2.with(ChronoField.MINUTE_OF_HOUR, 2);
        LocalDateTime with6 = localDateTime2.with(ChronoField.SECOND_OF_MINUTE, 2);
        LocalDateTime with7 = localDateTime2.with(ChronoField.NANO_OF_SECOND, 2);
    }
    @Test
    public void java_Time_LocalDate_Test() {
        //生成LocalDate对象
        LocalDate date1 = LocalDate.now();
        LocalDate date2= LocalDate.of(2021, 1, 1);
        LocalDate date3 = LocalDate.parse("2022-04-19");
        //获取指定时间字段
        int year1 = date2.get(ChronoField.YEAR);
        int year2 = date2.get(ChronoField.YEAR_OF_ERA);
        int month = date2.get(ChronoField.MONTH_OF_YEAR);
        int day = date2.get(ChronoField.DAY_OF_MONTH);
        //比较时间前后相等
        boolean after = date1.isAfter(date2);
        boolean before = date1.isBefore(date2);
        boolean equal = date1.isEqual(date2);
        //增加或减去一段时间
        LocalDate plus1 = date2.plus(1, ChronoUnit.YEARS);
        LocalDate plus2 = date2.plus(1, ChronoUnit.MONTHS);
        LocalDate plus3 = date2.plus(1, ChronoUnit.DAYS);
        LocalDate minus1 = date2.minus(1, ChronoUnit.YEARS);
        LocalDate minus2 = date2.minus(1, ChronoUnit.MONTHS);
        LocalDate minus3 = date2.minus(1, ChronoUnit.DAYS);
        //计算到另一个日期的时间换算成指定时间单位的值
        long until1 = date2.until(date1, ChronoUnit.YEARS);
        long until2 = date2.until(date1, ChronoUnit.MONTHS);
        long until3 = date2.until(date1, ChronoUnit.DAYS);

        //更改指定时间字段
        LocalDate with1 = date2.with(ChronoField.YEAR, 2022);
        LocalDate with2 = date2.with(ChronoField.MONTH_OF_YEAR, 2);
        LocalDate with3 = date2.with(ChronoField.DAY_OF_MONTH, 2);
    }
    @Test
    public void java_Time_LocalTime_Test() {
        //生成LocalTime对象
        LocalTime localTime1 = LocalTime.now();
        LocalTime localTime2 = LocalTime.of(13, 1, 1, 1);
        LocalTime localTime3 = LocalTime.parse("21:15:07.823");
        //获取指定时间字段
        int hour = localTime2.get(ChronoField.HOUR_OF_DAY);
        int minute = localTime2.get(ChronoField.MINUTE_OF_HOUR);
        int second = localTime2.get(ChronoField.SECOND_OF_MINUTE);
        int nano = localTime2.get(ChronoField.NANO_OF_SECOND);
        //比较时间前后相等
        boolean after = localTime1.isAfter(localTime2);
        boolean before = localTime1.isBefore(localTime2);
        //增加或减去一段时间
        LocalTime plus1 = localTime2.plus(1, ChronoUnit.HOURS);
        LocalTime plus2 = localTime2.plus(1, ChronoUnit.MINUTES);
        LocalTime plus3 = localTime2.plus(1, ChronoUnit.SECONDS);
        LocalTime plus4 = localTime2.plus(1, ChronoUnit.NANOS);
        LocalTime minus1 = localTime2.minus(1, ChronoUnit.HOURS);
        LocalTime minus2 = localTime2.minus(1, ChronoUnit.MINUTES);
        LocalTime minus3 = localTime2.minus(1, ChronoUnit.SECONDS);
        LocalTime minus4 = localTime2.minus(1, ChronoUnit.NANOS);
        //计算到另一个日期的时间换算成指定时间单位的值
        long until1 = localTime2.until(localTime1, ChronoUnit.HOURS);
        long until2 = localTime2.until(localTime1, ChronoUnit.MINUTES);
        long until3 = localTime2.until(localTime1, ChronoUnit.SECONDS);
        long until4 = localTime2.until(localTime1, ChronoUnit.NANOS);
        //更改指定时间字段
        LocalTime with1 = localTime2.with(ChronoField.HOUR_OF_DAY, 14);
        LocalTime with2 = localTime2.with(ChronoField.MINUTE_OF_HOUR, 2);
        LocalTime with3 = localTime2.with(ChronoField.SECOND_OF_MINUTE, 2);
        LocalTime with4 = localTime2.with(ChronoField.NANO_OF_SECOND, 2);
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值