Instant、LocalTime、LocalDate、LocalDateTime介绍

2022-11-21 13:27:50

前言

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时间类的使用,
  • 作者:忘忘忘忘不掉
  • 原文链接:https://blog.csdn.net/qq_44688861/article/details/113863093
    更新时间:2022-11-21 13:27:50