Java8 java.time.Duration 类实例

671 阅读1分钟

java.time.Duration 是java8中引入的一个对象。这是一个用来寻找两个日期之间的微观时间信息的测量。

这个测量时间的单位是micronano 秒。

这是一个有用的寻找各种日期和时间API类之间的周期。

这是一个不可变的类,一旦创建,我们不能改变它的值和线程安全类。

public final class Duration  
        implements TemporalAmount, Comparable, Serializable 

这是一个使用以下方法将持续时间对象转换为其他单位的例子

  • toNanos()
  • toMillis()
  • toMinutes()
  • toHours()
  • toDays()
    我们已经看到getNanos() 方法,它与toNanos() 不同
    getNanos() 总是返回小于秒的值
    toNanos() 返回 Duration 对象的全纳秒。
import java.time.LocalDateTime;

public class Test {
    public static void main(String[] args) {
        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()
  • minusMinutes()
  • minusHours()
  • minusDays()
    请看下面的方法用法和例子
import java.time.Duration;
import java.time.LocalTime;

public class Test {
    public static void main(String[] args) {
        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());
    }
}

输出

43200  
43600  
43200  

总结

在本教程中,学习了java.time.Duration类在java8中的使用方法,并讨论了实例