Instant类的使用
Instant类的全类名:
-
java.time.Instant;
-
Instant就是瞬时的意思,也就是时间线上的一个瞬时点
Instant可能会被用来记录应用程序中的事件对应的时间戳
- 我们人都是要看这个时间是几几年多少月多少号,然后看是几时几分,但是电脑不会知道,电脑只会认一个数,这个数可以是秒数,也可以是毫秒数,也就是一个瞬时(Instant)
注意:由于我们的java.time包是基于纳秒计算的,所以我们Instant也可以精确到纳秒级别
实例化:
now();
- 我们使用Instant类来调用其中的now()静态方法就可以得到这个Instant类的实例化对象
- 我们使用now()方法获取的是本初子午线上对应的标准时间
eg:
Instant instant = Instant.now(); //这里就是获取了一个本初子午线上的标准时间
我们这里的输出格式为: 2021-11-26T08:05:02.049066600Z
-
这个时候我们就是获得了一个标准时间(也就是本初子午线上面对应的时间)
-
我们可以通过添加时间的偏移量来获取北京时间
eg:(下面的instant是一个Instant类的实例对象)OffsetDateTime offsetDateTime=instant.atOffset(ZoneOffset.ofHours(8)); //这里我们就是将这个本初子午线对应的标准时间转换成为了北京时间
-
我们这里输出格式为2021-11-26T16:05:02.049066600+08:00
-
成员方法:
-
toEpochMilli();
获取这个瞬时点对应的时间戳(也就是一个毫秒数)
- 这个方法是一个非静态方法,使用Instant类的一个实例化对象调用,将这个Instant类转为long类型的数据
- 从1970年1月1日0时0分0秒到现在的时间差
-
ofEpochMilli();
通过给定的毫秒数的得到一个我们的Instant实例
- 这个方法是一个静态方法,调用这个ofEpochMill()方法传入一个long型的数据,就可以转换成为Instant类的对象