El método tick(Clock baseClock, Duration tickDuration) de java.time.Clock es un método estático de la clase Clock que devuelve un reloj que devuelve instantes desde el reloj base redondeado a la ocurrencia más cercana de la duración especificada en el parámetro. La duración del reloj base especificada debe ser positiva, ni negativa ni nula. El reloj marcará según la duración dada y si la duración es la mitad del minuto o la mitad del segundo o la mitad de la hora, el reloj devolverá instantes redondeados a la mitad del minuto o la mitad del segundo o la mitad del hora, según lo especificado por la duración.
Este método puede ayudar a personalizar la clase de reloj que marca según la duración. Por ejemplo, una marca significa que si se proporciona una duración de 5 segundos, la segunda parte del instante se redondeará a 5 segundos. Si la segunda parte del reloj base es 13, entonces será 10. El reloj redondeado devuelve un instante que es más pequeño que el reloj base.
Una duración de cero o un nanosegundo no tendría ningún efecto en el método del reloj base. Estos devolverán el mismo reloj base. Si el reloj base es inmutable, seguro para subprocesos y serializable, el reloj devuelto también será inmutable, seguro para subprocesos y serializable.
Sintaxis:
public static Clock tick(Clock baseClock, Duration tickDuration)
Parámetros: Este método toma dos parámetros obligatorios:
- baseClock : el reloj base que desea redondear según la duración.
- tickDuration : la duración de cada marca visible para redondear el reloj, no negativa, no nula.
Valor devuelto: este método devuelve un reloj que utiliza el mejor reloj del sistema disponible en la zona predeterminada
Excepción: este método arroja las siguientes excepciones:
- IllegalArgumentException : si la duración es negativa o tiene una parte que es muy inferior
a un milisegundo completo, de modo que la duración total no es divisible en un segundo. - ArithmeticException : si la duración es demasiado grande para representarla en nanosegundos.
Ejemplo:
Code: Clock baseClock = Clock.systemDefaultZone(); Clock clock = Clock.tick(baseClock, Duration.ofSeconds(10)); Explanation:: 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.
Los siguientes programas ilustran el método tick() de la clase java.time.Clock
Programa 1: cuando Clock se crea con systemDefaultZone().
En el siguiente programa, hay tres casos en los que la duración es de 30 segundos, 10 segundos, 3 segundos. Por lo tanto, se debe aplicar el método tick() para estos tres casos.
// 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 the 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
Programa 2: Imprime el instante del reloj cuando la duración es en Minutos, Horas o Días.
// 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 the 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
Referencia:
https://docs.oracle.com/javase/8/docs/api/java/time/Clock.html#tick-java.time.Clock-java.time.Duration-
Publicación traducida automáticamente
Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA