📜  Java的.time.Instant类在Java中(1)

📅  最后修改于: 2023-12-03 14:43:02.287000             🧑  作者: Mango

Java的.time.Instant类在Java中介绍

在Java 8中,新增了.time.Instant类,它代表了一个时间戳,即从1970-01-01T00:00:00Z开始计算的秒数(距离纪元的秒数)。

创建Instant对象

我们可以使用以下方法来创建Instant对象:

  • 通过ofEpochSecond方法从秒数创建Instant对象
Instant instant = Instant.ofEpochSecond(1572915667);
  • 通过ofEpochMilli方法从毫秒数创建Instant对象
Instant instant = Instant.ofEpochMilli(1572915667000L);
  • 使用now方法获取当前时间的Instant对象
Instant instant = Instant.now();
Instant的常用方法

Instant类提供了许多常用的方法,例如:

  • plus方法:在当前时间戳的基础上加上指定的时间
Instant instant = Instant.now().plus(Duration.ofHours(5));
  • minus方法:在当前时间戳的基础上减去指定的时间
Instant instant = Instant.now().minus(Duration.ofDays(2));
  • compareTo方法:比较两个时间戳的先后顺序
Instant instant1 = Instant.now();
Instant instant2 = Instant.now().plus(Duration.ofDays(1));
int result = instant1.compareTo(instant2);
  • isAfter方法和isBefore方法:判断一个时间戳是否在另一个时间戳之后或之前
Instant instant1 = Instant.now();
Instant instant2 = Instant.now().plus(Duration.ofDays(1));
boolean isAfter = instant1.isAfter(instant2);
boolean isBefore = instant1.isBefore(instant2);
  • toEpochMilli方法:将时间戳转换为毫秒数
Instant instant = Instant.now();
long millis = instant.toEpochMilli();

备注:上述方法中的Duration是代表时间段的类,可以通过它来指定小时、分钟、秒等单位的时间。

Instant和Date之间的转换

我们可以使用.toDate方法将Instant对象转换成Date对象

Date date = instant.toDate();

也可以使用Date的.toInstant方法将Date对象转换成Instant对象

Instant instant = date.toInstant();
总结

Java的.time.Instant类在Java 8中提供了方便的时间戳表示方法,可以方便地进行时间的加减、比较和转换。在实际开发中,经常会用到Instant对象,学习并掌握此类的使用方法,对于提高我们程序的效率和准确性有很大帮助。