Java 8 时间接口示例:DayOfWeek、Duration 和 Instant
在此页面中,我们将看到 java 8
时间接口 DayOfWeek
、Duration
和 Instant
的示例。
DayOfWeek
表示一周的日期名称。
Duration
是将表示为一个类的时间量。
Instant
是时间刻度上的一个瞬间的时间点。
Java 8 中的 DayOfWeek
java.time.DayOfWeek
是java 8
中一个不可变的、线程安全的枚举。
DayOfWeek
表示一周中的一天,如MONDAY
, TUESDAY
等。
DayOfWeek
除了日期名称也有一个数字值。
我们可以通过数字值获得日期名称,也可以通过日期名称获得数字值。
DayOfWeekDemo.java
import java.time.DayOfWeek;
public class DayOfWeekDemo {
public static void main(String[] args) {
System.out.print(DayOfWeek.MONDAY.getValue());
System.out.println(DayOfWeek.of(1));
System.out.print(DayOfWeek.THURSDAY.getValue());
System.out.println(DayOfWeek.of(2));
System.out.print(DayOfWeek.SUNDAY.getValue());
System.out.println(DayOfWeek.of(7));
}
}
输出
1MONDAY
4TUESDAY
7SUNDAY
Java 8 中的 Duration
java.time.Duration
是一个时间量。
例如,20
分钟是一个时间量,可以用Duration
类来表示。
DurationDemo.java
import java.time.Duration;
import java.time.temporal.ChronoUnit;
public class DurationDemo {
public static void main(String[] args) {
Duration duration = Duration.of(2, ChronoUnit.DAYS);
System.out.println(duration.getSeconds());
System.out.println(Duration.ofHours(1).getSeconds());
System.out.println(Duration.ofDays(1).getSeconds());
}
}
输出
172800
3600
86400
Java 8 中的 Instant
java.time.Instant
与它的名字相同。
Instant
可以用来记录任何应用程序中的事件时间戳。
Instant
对象表示时间尺度上的瞬时点。
InstantDemo.java
import java.time.Clock;
import java.time.Instant;
public class InstantDemo {
public static void main(String[] args) {
Instant inst1 = Instant.now();
System.out.println(inst1.getEpochSecond());
Instant inst2 = Instant.EPOCH;
System.out.println(inst1.isAfter(inst2));
Instant inst3 = Instant.now(Clock.systemUTC());
System.out.println(inst3.isAfter(inst1));
System.out.println(Instant.MAX.getNano());
System.out.println(Instant.MIN.getNano());
}
}
输出
1409913547
true
false
999999999
0