Instant、LocalTime、LocalDate、LocalDateTime介绍


前言

java1.8中新增加的时间类


一、Instant(表示的是一个时间戳)

可以精确掉纳秒 当用纳秒表示一个时间用一位Long类型是不够的,需要多一点的空间,它的内部是两个Long字段组成的,第一部分表示的是1970年1月1日到现在的秒数,第二部分表示的是纳秒数
Instant instant = Instant.now();//获取当前时间
System.out.println(instant);

1.1 Instant的其他方法

//计算5天前的时间
  Instant instant1 =  instant.minus(5, ChronoUnit.DAYS);
  System.out.println(instant1);

  //计算5天前的第二种方法
   Instant instant2 =  instant.minus(5, ChronoUnit.DAYS);
   System.out.println(instant2);

1.1.1 比较方法

它提供两种方法用于比较isAfter()和isBefore()

1.1.2得到秒数

//得到秒数
        Instant now = Instant.now();
        System.out.println(now.getEpochSecond());//秒
        System.out.println(now.toEpochMilli());//毫秒

1.2 转换

因为Instant是时间戳,所以加上一个时区就可以创建ZonedDateTime然后就可以获得对应时区的LocalDateTime了。
下面是转换的关系图
在这里插入图片描述

二、LocalTime(不带时区的时间)

1.基本方法

  //获取当前时间包含毫秒数---打印出->15:46:22.300
      LocalTime localTime = LocalTime.now();

     //构建时间---打印出->12:20:13
      LocalTime localTime1 = LocalTime.of(12,20,13);

      //获取当前时间不包含毫秒数---打印出来->15:49:37
      LocalTime localTime2 = localTime.withNano(0);

      //字符串可以转为时间---打印出来->12:15:12
      LocalTime localTime3 = LocalTime.parse("12:15:12");

    //判断localTime是否比localTime2晚
      System.out.println(localTime.isAfter(localTime2));
        
     //修改毫秒值
      System.out.println(localTime.withNano(22345));

三、LocalDate(不带时区的日期)

## 3.1常用方法
 LocalDate localDate = LocalDate.now();
        //获得2020年的第23天
        localDate = LocalDate.ofYearDay(2020,23);
        
        //2013年8月10日
        localDate = LocalDate.of(2013, Month.AUGUST,10);

四、LocalDateTime

它是LocalDate和LocalTime的组合体,表示不带时区的日期和时间。

总结

例如:以上就是今天要讲的内容,本文仅仅简单介绍了Java时间类的使用,

猜你喜欢

转载自blog.csdn.net/qq_44688861/article/details/113863093
今日推荐