Java日期时间 – Java实例/持续时间
实例和持续时间允许我们记录时间戳和已用时间。
我们可以从瞬间添加和减去持续时间,以获得另一个瞬间。
通过添加两个持续时间,我们可以获得另一个持续时间。
即时和持续时间类别分别存储秒和纳秒。
即时和持续时间更常使用机器级时间。
实例
瞬间表示独特的时刻。
一个时代是用作测量其他时刻的起源的瞬间。 时代是在1970-01-01T00:00:00Z。
两个连续时刻之间的时间是1纳秒。
时代之后的时刻具有正值,而时代之前的时刻具有负值。
在时期的瞬间被分配零值。
我们可以使用Instant.now()来获取使用系统默认时钟的当前时刻。
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Instant instantNow = Instant.now();
System.out.println(instantNow);
}
}
上面的代码生成以下结果。
例2
您可以从历元偏移创建即时。
以下代码创建一个Instant对象以表示从时代开始的9秒。
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Instant instance9 = Instant.ofEpochSecond(9);
System.out.println(instance9);
instance9 = Instant.ofEpochSecond(-9);
System.out.println(instance9);
}
}
上面的代码生成以下结果。

注意
两个时刻可以比较知道是否发生在其他之前或之后。
实例和持续时间用于记录两个事件之间的时间戳和经过时间。
持续时间
Duration 对象表示两个时刻之间的时间跨度。
Duration类可以具有正值和负值。
我们可以使用它的一个XXXX()静态工厂方法创建Duration类。
import java.time.Duration;
public class Main {
public static void main(String[] args) {
Duration d1 = Duration.ofDays(2);
System.out.println(d1);
Duration d2 = Duration.ofMinutes(2);
System.out.println(d2);
}
}
上面的代码生成以下结果。
例3
乘法,除法和否定适用于Duration对象。
import java.time.Duration;
public class Main {
public static void main(String[] args) {
Duration d = Duration.ofSeconds(200); // 3 minutes and 20 seconds
Duration d1 = d.multipliedBy(2); // 6 minutes and 40 seconds
Duration d2 = d.negated(); // -3 minutes and -20 seconds
System.out.println(d);
System.out.println(d1);
System.out.println(d2);
}
}
上面的代码生成以下结果。
例4
以下代码显示了如何从Instant中获取秒和纳秒:
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Instant i1 = Instant.now();
long seconds = i1.getEpochSecond();
System.out.println(seconds);
int nanoSeconds = i1.getNano();
System.out.println(nanoSeconds);
}
}
上面的代码生成以下结果。
例5
以下代码显示了如何进行即时和持续时间计算。
import java.time.Duration;
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Duration d1 = Duration.ofSeconds(55);
Duration d2 = Duration.ofSeconds(-17);
Instant i1 = Instant.now();
Instant i4 = i1.plus(d1);
Instant i5 = i1.minus(d2);
Duration d3 = d1.plus(d2);
System.out.println(d3);
}
}
上面的代码生成以下结果。


国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码













