java.time.Duration是java8中引入的一个对象。这是一个用来寻找两个日期之间的微观时间信息的测量。它测量的是微秒和纳秒的时间。这是一个有用的寻找各种日期和时间API类之间的时间段的方法。这是一个不可变的类,一旦创建,我们不能改变它的值和线程安全类。
签名
public final class Duration
implements TemporalAmount, Comparable, Serializable
Duration类内部存储了以下两个值
纳秒 - 这是小于秒的值
秒 - 这是大于秒的值。
这与OLD APIjava.util Date不同,后者使用毫秒
getNanos()方法- 该方法用于获取纳秒
getSeconds()方法 - 该方法用于获取秒。
这是一个使用以下方法将持续时间对象转换为其他单位的例子
toNanos()
toMillis()
toMinutes()
toHours()
toDays()
我们已经看到getNanos() 方法与*toNanos()*不同
*getNanos()*总是返回小于秒的值
*toNanos()*返回持续时间对象的完整纳秒。
LocalDateTime dateTime = LocalDateTime.of(2017, 1, 1, 0, 0);
LocalDateTime dateTime1 = LocalDateTime.now();
System.out.println("Differnce in Nano seconds" + java.time.Duration.between(dateTime, dateTime1).getNano());
System.out.println("Differnce in Milli seconds" + java.time.Duration.between(dateTime, dateTime1).toMillis());
System.out.println("Differnce in seconds" + java.time.Duration.between(dateTime, dateTime1).getSeconds());
System.out.println("Differnce in minutes" + java.time.Duration.between(dateTime, dateTime1).toMinutes());
System.out.println("Differnce in hours" + java.time.Duration.between(dateTime, dateTime1).toHours());
输出是
Differnce in Nano seconds644942100
Differnce in Milli seconds52185645644
Differnce in seconds52185645
Differnce in minutes869760
Differnce in hours14496
如何在java8中为持续时间添加/减去小时/分钟/秒?
Duration类提供了各种方法来添加/抽象纳秒、毫秒。
plusNanos()
plusMillis()
plusSeconds()
plusMinutes()
plusHours()
plusDays()
minusNanos()
minusMillis()
minusSeconds()
minusHours()
请看下面的方法用法和例子
Duration duration = Duration.between(LocalTime.MIDNIGHT,LocalTime.NOON);
System.out.println(duration.getSeconds());
duration = duration.plusSeconds(400);
System.out.println(duration.getSeconds());
duration = duration.minusSeconds(400);
System.out.println(duration.getSeconds());
输出是