java.time.Duration怎么理解

70次阅读
没有评论

共计 1457 个字符,预计需要花费 4 分钟才能阅读完成。

本篇内容主要讲解“java.time.Duration 怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“java.time.Duration 怎么理解”吧!

一个 Duration 对象表示两个 Instant 间的一段时间,是在 Java 8 中加入的新功能。

一个 Duration 实例是不可变的,当创建出对象后就不能改变它的值了。你只能通过 Duration 的计算方法,来创建出一个新的 Durtaion 对象。你会在之后的教程中见到的。

创建 Duration 实例  
使用 Duration 类的工厂方法来创建一个 Duration 对象,以下是一个使用 between() 的例子:

Instant first = Instant.now();
// wait some time while something happens
Instant second = Instant.now();
Duration duration = Duration.between(first, second);

访问 Duration 的时间  
一个 Duration 对象里有两个域:纳秒值(小于一秒的部分),秒钟值(一共有几秒),他们的组合表达了时间长度。注意屯使用 System.getCurrentTimeMillis() 时不同,Duration 不包含毫秒这个属性。 
你可以通过以下两个方法得到它们的值:

long seconds = getSeconds()
int nanos = getNano()

你也可以转换整个时间到其它单位如纳秒、分钟、小时、天:

toNanos()
toMillis()
toMinutes()
toHours()
toDays()

举例而言:toNanos() 与 getNano() 不同,toNanos() 获得的是 Duration 整个时间共有多少纳秒,而 getNano() 只是获得这段时间中小于一秒的部分。你也许会问,为什么没有 toSeconds() 方法,因为已经有 getSeconds() 这个方法能达到同样的功能了。

Duration 计算  
Duration 类包含一系列的计算方法:

plusNanos()
plusMillis()
plusSeconds()
plusMinutes()
plusHours()
plusDays()
minusNanos()
minusMillis()
minusSeconds()
minusMinutes()
minusHours()
minusDays()

这些方法所做的事都是相似的,我在这儿也不展示内部实现细节了,就展示一个加减的例子吧:

Duration start = ... //obtain a start duration
Duration added = start.plusDays(3);
Duration subtracted = start.minusDays(3);

第一行创建了一个 Duration 对象叫 start,具体怎么创建可以参考前面的代码。第二三行样例创建了两个新的 Duration,通过调用 start 的加减操作,使得 added 对象表示的时间比 start 多三天,而 substracted 则少三天。 
所有的计算方法都会返回一个新的 Duration,以保证 Duration 的不可变属性。

到此,相信大家对“java.time.Duration 怎么理解”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计1457字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)