Java教程-Java Clock类

Java Clock类
Java Clock类用于通过时区提供对当前日期和时间的访问。它继承自Object类。
因为所有日期时间类都包含一个now()函数,该函数使用默认时区的系统时钟,所以不需要使用Clock类。Clock类的目的是允许您在需要时插入另一个时钟。应用程序使用对象而不是静态方法来获取当前时间。这简化了测试过程。需要当前时间点的方法可以将Clock作为参数。
Java Clock类声明
让我们来看一下java.time.Clock类的声明。
public abstract class Clock extends Object
Java Clock类的方法
方法 | 描述 |
---|---|
abstract ZoneId getZone() | 用于获取用于创建日期和时间的时区。 |
abstract Instant instant() | 用于获取时钟的当前时间点。 |
static Clock offset(Clock baseClock, Duration offsetDuration) | 用于获取一个时钟,该时钟返回指定时钟的时间点,并添加指定的持续时间。 |
static Clock systemDefaultZone() | 用于获取一个时钟,该时钟使用最佳可用系统时钟返回当前时间点,并使用默认时区转换为日期和时间。 |
static Clock systemUTC() | 用于获取一个时钟,该时钟使用最佳可用系统时钟返回当前时间点,并使用UTC时区转换为日期和时间。 |
boolean equals(Object obj) | 检查此时钟是否等于另一个时钟。 |
static Clock fixed(Instant fixedInstant, ZoneId zone) | 获取一个始终返回相同时间点的时钟。 |
static Clock system(ZoneId zone) | 获取一个使用最佳可用系统时钟返回当前时间点的时钟。 |
int hashCode() | 获取用于创建日期和时间的时区。 |
long millis() | 获取时钟的当前毫秒时间点。 |
static Clock tick(Clock baseClock, Duration tickDuration) | 获取一个时钟,该时钟返回指定时钟的时间点,并截断到指定持续时间的最近发生时间点。 |
static Clock tickMinutes(ZoneId zone) | 获取一个时钟,该时钟使用最佳可用系统时钟以整分钟为单位返回当前时间点。 |
static Clock tickSeconds(ZoneId zone) | 获取一个时钟,该时钟使用最佳可用系统时钟以整秒为单位返回当前时间点。 |
static Clock withZone(ZoneId zone) | 返回具有不同时区的时钟的副本。 |
Java Clock类示例:getZone()
ClockExample1.java
import java.time.Clock;
public class ClockExample1 {
public static void main(String[] args) {
Clock c = Clock.systemDefaultZone();
System.out.println(c.getZone());
}
}
输出:
Asia/Calcutta
Java Clock类示例:instant()
ClockExample2.java
import java.time.Clock;
public class ClockExample2 {
public static void main(String[] args) {
Clock c = Clock.systemUTC();
System.out.println(c.instant());
}
}
输出:
2017-01-14T07:11:07.748Z
Java Clock类示例:systemUTC()
ClockExample3.java
import java.time.Clock;
public class ClockExample3 {
public static void main(String[] args) {
Clock c = Clock.systemUTC();
System.out.println(c.instant());
}
}
输出:
2017-01-14T07:11:07.748Z