java.time.Clock的tick(Clock baseClock,Duration tickDuration)方法是Clock類的靜態方法,該方法返回一個時鍾,該時鍾返回從基本時鍾開始的四舍五入到參數中指定持續時間的最接近值的時刻。指定的基本時鍾持續時間必須為正,不能為負,也不能為null。時鍾將按照給定的持續時間滴答,如果持續時間是一分鍾的一半或一秒的一半或一小時的一半,時鍾將返回四舍五入到一分鍾的一半或一秒或一半的一半的時間。小時,由持續時間指定。
此方法有助於自定義根據持續時間進行滴答的時鍾類別。例如,滴答表示如果持續時間為5秒,則瞬間的第二部分將根據5秒取整。如果基本時鍾的第二部分是13,則它將是10。四舍五入的時鍾返回小於基本時鍾的瞬間。
零或一納秒的持續時間將不會對基本時鍾方法產生影響。這些將返回相同的基本時鍾。如果基本時鍾是不可變的,線程安全的和可序列化的,則返回的時鍾也將是不可變的,線程安全的和可序列化的。
用法:
public static Clock tick(Clock baseClock, Duration tickDuration)
參數:此方法采用兩個強製性參數:
- baseClock-您要根據持續時間四舍五入的基本時鍾。
- tickDuration-每個可見的滴答聲的持續時間,不舍棄,不為null。
返回值:此方法返回使用默認區域中最佳可用係統時鍾的時鍾
異常:此方法引發以下異常:
- IllegalArgumentException-如果持續時間為負數,或者部分很小
而不是一整毫秒,這樣整個持續時間就不能被整分為一秒。 - ArithmeticException-如果持續時間太大而無法以納秒表示。
例:
Code: Clock baseClock = Clock.systemDefaultZone(); Clock clock = Clock.tick(baseClock, Duration.ofSeconds(10)); Expalnation:: method tick() returns the instant which ticks after per 10 sec means the duration of the tick is 10sec.is instant actual time is 18:57:51.248Z then due to 10sec duration it will round to 18:57:50Z and same for 18:59:36.247Z to 18:59:30Z.
下麵的程序演示了java.time.Clock類的tick()方法
程序1:用systemDefaultZone()創建時鍾時。
在下麵的程序中,存在三種情況,持續時間為30秒,10秒,3秒。因此對於這三種情況必須使用tick()方法。
// Java program to demonstrate
// tick() method of Clock class
import java.time.*;
// create class
public class tickMethodDemo {
// Main method
public static void main(String[] args)
{
// create base Clock with systemDefaultZone() method
Clock baseclock = Clock.systemDefaultZone();
// get instant of base class and print instant
Instant instant = baseclock.instant();
System.out.println("Instant of Base class " + instant);
// apply tick Method for Duration of 30sec and
// create clock1 and print instant of clock1
Clock clock1 = Clock.tick(baseclock, Duration.ofSeconds(30));
System.out.println("Instant of Clock1 " + clock1.instant());
// apply tick Method for Duration of 10sec and
// create clock2 and print instant of clock2
Clock clock2 = Clock.tick(baseclock, Duration.ofSeconds(10));
System.out.println("Instant of Clock2 " + clock2.instant());
// apply tick Method for Duration of 3sec and
// create clock3 and print instant of clock3
Clock clock3 = Clock.tick(baseclock, Duration.ofSeconds(3));
System.out.println("Instant of Clock3 " + clock3.instant());
}
}
Instant of Base class 2018-08-22T11:18:11.336Z Instant of Clock1 2018-08-22T11:18:00Z Instant of Clock2 2018-08-22T11:18:10Z Instant of Clock3 2018-08-22T11:18:09Z
程序2:當持續時間以分鍾,小時或天為單位時,打印時鍾時刻。
// Java program to demonstrate
// tick() method of Clock class
import java.time.*;
// create class
public class tickMethodDemo {
// Main method
public static void main(String[] args)
{
// create base Clock with systemUTC() method
Clock baseclock = Clock.systemUTC();
// get instant of base class and print instant
Instant instant = baseclock.instant();
System.out.println("Instant of Base class "
+ instant);
// apply tick Method for Duration of 10 Minutes
Clock clock1 = Clock.tick(baseclock,
Duration.ofMinutes(10));
System.out.println("Instant of Clock1 when duration"
+ " = 10 minutes is "
+ clock1.instant());
// apply tick Method for Duration of 2 hours
Clock clock2 = Clock.tick(baseclock,
Duration.ofHours(2));
System.out.println("Instant of Clock2 when duration"
+ " = 2 hours is "
+ clock2.instant());
// apply tick Method for Duration of 5 days
Clock clock3 = Clock.tick(baseclock,
Duration.ofDays(5));
System.out.println("Instant of Clock2 when duration"
+ " = 5 days is "
+ clock3.instant());
}
}
Instant of Base class 2018-08-22T11:18:15.533Z Instant of Clock1 when duration = 10 minutes is 2018-08-22T11:10:00Z Instant of Clock2 when duration = 2 hours is 2018-08-22T10:00:00Z Instant of Clock2 when duration = 5 days is 2018-08-22T00:00:00Z
相關用法
- Java 8 Clock millis()用法及代碼示例
- Java 8 Clock equals()用法及代碼示例
- Java 8 Clock offset()用法及代碼示例
- Java 8 Clock getZone()用法及代碼示例
- Java 8 Clock instant()用法及代碼示例
- Java 8 Clock hashCode()用法及代碼示例
- Java Clock system()用法及代碼示例
- Java Clock systemUTC()用法及代碼示例
- Java Clock systemDefaultZone()用法及代碼示例
- Java Clock tickSeconds()用法及代碼示例
- Java 8 Clock fixed()用法及代碼示例
- Java Clock withZone()用法及代碼示例
- Java Clock tickMinutes()用法及代碼示例
- Java HijrahChronology dateNow(Clock)用法及代碼示例
注:本文由純淨天空篩選整理自AmanSingh2210大神的英文原創作品 Clock tick() Method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。