Java Instant

时间:2020-01-09 10:35:55  来源:igfitidea点击:

Java日期时间API(java.time.Instant)中的Instant类表示时间轴上的特定时刻。瞬时定义为距原点的偏移量(称为历元)。起点是1970年1月1日格林威治标准时间(格林尼治标准时间)00:00。

从每天开始,每天使用86.400秒来测量时间。

创建Instant

我们可以使用Instant类工厂方法之一创建一个Instant实例。例如,要创建一个表示当前确切时刻的"即时",请调用" Instant.now()",如下所示:

Instant now = Instant.now();

还有其他创建"即时"的方法。查阅JavaDoc了解更多信息。

访问即时时间

"即时"对象内部包含两个字段,其中包含"即时"表示的时间:

  • 自时代以来的秒数。
  • 纳秒

自纪元以来的秒数是自本教程开头提到的原点起的秒数。纳秒是该"即时"的一部分,不到一秒。

我们可以通过以下方法访问秒和纳秒:

  • getEpochSecond()
  • getNano()

即时计算

"即时"类还具有几种可用于相对于"即时"进行计算的方法。这些方法中的一些(不是全部)是:

  • plusSeconds()
  • plusMillis()
  • plusNanos()
  • minusSeconds()
  • minusMillis()
  • minusNanos()

我将在下面显示两个示例,以说明这些方法的工作原理:

Instant now     = Instant.now();

Instant later   = now.plusSeconds(3);
Instant earlier = now.minusSeconds(3);

第一行创建一个新的" Instant",代表现在的时刻。第二行创建一个" Instant",代表3秒后的时刻,而第三行创建一个" Instant",代表3秒前的时刻。