Java Clock system()方法及实例
java.time.Clock.system(ZoneId zone) 方法是Clock类的一个静态方法,它返回一个时钟,该时钟使用最佳的可用系统时钟,返回的时钟的ZoneID被设置为所传递的ZoneID的当前时刻。这个方法可以使用System.currentTimeMillis(),或者其他更高分辨率的时钟,如果该时钟可以使用的话。在从瞬时转换到日期或时间的时候,指定的时区被用来给出该时区的日期和时间。从这个方法返回的时钟是不可改变的、线程安全的和可串行的。
语法
public static Clock system(ZoneId zone)
参数: 该方法需要一个强制性的参数 zone ,即在将瞬间转换为日期时间时使用的时区 。 返回: 该方法返回给定ZoneId的时钟对象 。
代码:
// create a Zone Id for Europe/Paris
ZoneId zoneId = ZoneId.of("Europe/Paris");
// base Clock with default zone
Clock realClock=Clock.system(zoneId);
System.out.println(clock.instant());
输出: :
2018-08-21T10:25:52.361Z
解释:
当你为时钟调用system(ZoneId)时,system(ZoneId)
方法将返回一个给定ZoneId的类对象。
你可以通过使用类的瞬间来获得时钟的日期和时间。
下面的程序说明了java.time.Clock类的system(ZoneId)方法:
程序1: 当用system(ZoneId)创建时钟时,ZoneId是 “Europe/Paris”,并打印时钟的日期和时间。
// Java program to demonstrate
// system(ZoneId) method of Clock class
import java.time.Clock;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
/**
* Demonstrates the use of the system(ZoneId) method of Clock class
*/
public class SystemMethodDemo {
public static void main(String[] args) {
// create a ZoneId for Europe/Paris
ZoneId zoneId = ZoneId.of("Europe/Paris");
// create Clock with system(zoneId) method
Clock clock = Clock.system(zoneId);
// Get instant of class
Instant instant = clock.instant();
// Get ZonedDateTime object from instantObj to get date time
ZonedDateTime time = instant.atZone(clock.getZone());
// Print details of time
System.out.println("Instant for class is " + time);
}
}
输出
Instant for class is 2018-08-22T13:53:35.779+02:00[Europe/Paris]
程序2: 使用system()创建带有 “US/Arizona “区的时钟,并使用getZone()打印zoneId。
// Java program to demonstrate
// system(ZoneId) method of Clock class
import java.time.*;
/**
* This class demonstrates the Clock class's system() method,
* which allows us to create a clock that represents the current time
* in a particular time zone
*/
public class SystemMethodDemo {
public static void main(String[] args) {
// Create a ZoneId for US/Arizona
ZoneId zoneId = ZoneId.of("US/Arizona");
// Create a Clock instance with the system(zoneId) method
Clock clock = Clock.system(zoneId);
// Print details of the ZoneId of the new Clock
System.out.println("ZoneID of class is " + clock.getZone());
}
}
输出
ZoneID of class is US/Arizona
参考资料: https://docs.oracle.com/javase/8/docs/api/java/time/Clock.html#system-java.time.ZoneId-