Java Duration类

Java Duration类用于测量以秒和纳秒为单位的时间。它继承自Object类并实现了Comparable接口。

Java Duration类声明

让我们来看一下java.time.Duration类的声明。

public final class Duration extends Object

implements TemporalAmount, Comparable<Duration>, Serializable

Java Duration的方法

方法描述
Temporal addTo(Temporal temporal)将此duration添加到指定的时间对象。
static Duration between(Temporal startInclusive, Temporal endExclusive)获取表示两个时间对象之间的持续时间的Duration。
long get(TemporalUnit unit)获取所请求单位的值。
boolean isNegative()检查此duration是否为负数,不包括零。
boolean isZero()检查此duration是否为零长度。
Duration minus(Duration duration)返回此duration减去指定duration的副本。
Duration plus(Duration duration)返回此duration加上指定duration的副本。
Duration abs()返回具有正长度的此duration的副本。
static Duration between(Temporal startInclusive, Temporal endExclusive)获取表示两个时间对象之间的持续时间的Duration。
int compareTo(Duration otherDuration)将给定的duration与指定的Duration进行比较。
int getNano()获取此duration中的纳秒数。
long getSeconds()获取此duration中的秒数。
static Duration of(long amount, TemporalUnit unit)获取表示指定单位中的量的Duration。
static Duration ofDays(long days)获取表示标准24小时的天数的Duration。
static Duration ofHours(long hours)获取表示标准小时数的Duration。
static Duration ofMillis(long millis)获取表示毫秒数的Duration。
static Duration ofMinutes(long minutes)获取表示标准分钟数的Duration。
static Duration ofNanos(long nanos)获取表示纳秒数的Duration。
static Duration ofSeconds(long seconds)获取表示秒数的Duration。

Java Duration示例:get()

DurationExample1.java

import java.time.*;
import java.time.temporal.ChronoUnit;
public class DurationExample1 {
   public static void main(String[] args) {
      Duration d = Duration.between(LocalTime.NOON, LocalTime.MAX);
      System.out.println(d.get(ChronoUnit.SECONDS));
   }
}

输出:

43199

Java Duration示例:isNegative()

DurationExample2.java

import java.time.*;
public class DurationExample2 {
   public static void main(String[] args) {
      Duration d1 = Duration.between(LocalTime.MAX, LocalTime.NOON);
      System.out.println(d1.isNegative());
      Duration d2 = Duration.between(LocalTime.NOON, LocalTime.MAX);
      System.out.println(d2.isNegative());
   }
}

输出:

true
false

Java Duration示例:between()

DurationExample3.java

import java.time.*;
import java.time.temporal.ChronoUnit;
public class DurationExample3 {
   public static void main(String[] args) {
      Duration d = Duration.between(LocalTime.NOON, LocalTime.MAX);
      System.out.println(d.get(ChronoUnit.SECONDS));
   }
}

输出:

43199

Java Duration示例:minus()

DurationExample4.java

import java.time.*;
public class DurationExample4 {
   public static void main(String[] args) {
      Duration d1 = Duration.between(LocalTime.NOON, LocalTime.MAX);
      System.out.println(d1.getSeconds());
      Duration d2 = d1.minus(d1);
      System.out.println(d2.getSeconds());
   }
}

输出:

43199
0

Java Duration示例:plus()

DurationExample5.java

import java.time.*;
public class DurationExample5 {
   public static void main(String[] args) {
      Duration d1 = Duration.between(LocalTime.NOON, LocalTime.MAX);
      System.out.println(d1.getSeconds());
      Duration d2 = d1.plus(d1);
      System.out.println(d2.getSeconds());
   }
}

输出:

43199
86399

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想