千家信息网

java.time.Duration怎么理解

发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,本篇内容主要讲解"java.time.Duration怎么理解",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java.time.Duration怎么理解"
千家信息网最后更新 2024年11月17日java.time.Duration怎么理解

本篇内容主要讲解"java.time.Duration怎么理解",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"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怎么理解"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0