Java Clock systemDefaultZone()方法及示例
java.time.Clock.systemDefaultZone() 方法是Clock类的一个静态方法,它返回一个时钟,使用最佳可用的系统时钟返回时钟的当前瞬间,其中返回时钟的Zone是默认时区。
,如果可以使用时钟,该方法可以使用System.currentTimeMillis(),或其他更高分辨率的时钟进行实现。 当需要当前时刻而不需要日期或时间时,建议使用 该方法 。 但是如果需要对日期和时间进行操作,那么必须使用system()方法。这个方法与system(ZoneId.systemDefault())类似。从这个方法返回的时钟是不可改变的、线程安全的和可序列化的。
语法
public static Clock systemDefaultZone()
返回: 该方法返回一个使用默认区域内最佳可用系统时钟的时钟。
例子
**Code:**
//Clock with default zone
Clock clock=Clock.systemDefaultZone();
System.out.println(clock.instant());
**Output:** :
2018-08-21T10:25:52.361Z
**Explanation:** :
when you call systemDefaultZone() for Clock
then the systemDefaultZone() method will
return a Class Object whose Zone is default Time Zone.
下面的程序说明了java.time.Clock类的systemDefaultZone()方法。
程序1:当用systemDefaultZone()创建时钟时。
这个方法使时钟区域成为默认区域。下面的程序以ZonedDateTime格式打印时钟的日期和时间。
// Java program to demonstrate
// systemDefaultZone() method of Clock class
import java.time.*;
// create class
public class systemDefaultZoneMethodDemo {
// Main method
public static void main(String[] args)
{
// create Clock with systemDefaultZone() method
Clock clock = Clock.systemDefaultZone();
// 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 ZonedDateTime
System.out.println("ZonedDateTime of class"
+ " with default Zone is "
+ time.toString());
}
}
输出:
ZonedDateTime of class with default Zone is 2018-08-22T11:34:36.510Z[Etc/UTC]
程序2:使用getZone()打印由systemDefaultZone()创建的时钟的zoneId。
// Java program to demonstrate
// systemDefaultZone() method of Clock class
import java.time.*;
// create class
public class systemDefaultZoneMethodDemo {
// Main method
public static void main(String[] args)
{
// create Clock with systemDefaultZone() method
Clock clock = Clock.systemDefaultZone();
// get ZoneId of Clock
ZoneId zone = clock.getZone();
// print details of ZoneId of new Clock
System.out.println("ZoneID of class is " + zone);
}
}
输出:
ZoneID of class is Etc/UTC
参考资料:
https://docs.oracle.com/javase/8/docs/api/java/time/Clock.html#systemDefaultZone-