Java Clock tickSeconds()方法及示例
java.time.Clock.tickSeconds(ZoneId zone) 方法是Clock类的一个静态方法,它返回一个时钟,该时钟使用最佳可用的系统时钟,以整秒为单位返回当前的瞬间,瞬间的区域与作为参数传递的瞬间相同。
返回的时钟也是不可改变的、线程安全的、可序列化的,该方法等同于tick(system(zone), Duration.ofSeconds(1))。
语法
public static Clock tickSeconds(ZoneId zone)
参数: 该方法需要一个强制性的参数zone,它是用来将时钟的瞬间四舍五入到整秒中的时区。
返回值: 该方法返回一个时钟,该时钟以整秒为单位返回当前时刻的滴答声,zone与参数中的zone相同。
例子
代码:
ZoneId zoneId = ZoneId.of("Asia/Calcutta");
Clock clock = Clock.tickSeconds(zoneId);
System.out.println(clock.instant());
输出:
2018-08-21T20:22:32Z
解释: :
方法 tickSeconds() 返回瞬间
在一整秒内的滴答声意味着
纳秒字段为零。
下面的程序说明了java.time.Clock类的tickSeconds()方法。
程序1;当时钟被创建为Kolkata区,并打印出整秒的时钟滴答声。
// Java program to demonstrate
// tickSeconds() method of Clock class
import java.time.*;
// create class
public class tickSecondsMethodDemo {
// Main method
public static void main(String[] args)
{
// Zone Id with Zone Asia/Calcutta
ZoneId zoneId = ZoneId.of("Asia/Calcutta");
// create a clock which ticks in the whole Second
Clock clock = Clock.tickSeconds(zoneId);
// print instance of clock
System.out.println(clock.instant());
}
}
输出:
2018-08-22T11:27:38Z
程序2:打印带有欧洲/巴黎区的时钟的日期和时间以及每整秒的时钟刻度。
// Java program demonstrate
// tickSeconds() method of Clock class
import java.time.*;
// create class
public class tickSecondsMethodDemo {
// Main method
public static void main(String[] args)
{
// Zone Id with Zone Europe/Paris
ZoneId zoneId = ZoneId.of("Europe/Paris");
// create a clock which ticks in the whole Second
Clock clock = Clock.tickSeconds(zoneId);
// get ZonedDateTime object to print time
ZonedDateTime time = clock
.instant()
.atZone(clock.getZone());
// print time variable value
System.out.println("Date and Time :" + time);
}
}
输出:
Date and Time :2018-08-22T13:27:41+02:00[Europe/Paris]
参考资料:
https://docs.oracle.com/javase/8/docs/api/java/time/Clock.html#tickSeconds-java.time.ZoneId-