El método java.time.Clock.withZone(ZoneId zone) es un método de la clase Clock que devuelve una copia del reloj del objeto del reloj en el que se aplica este método, con una zona horaria diferente. Si hay un reloj y se requiere cambiar la zona del reloj pero no otras propiedades, entonces se usa el método withZone(). Este método toma zone como parámetro, que es la zona horaria en la que se requiere cambiar. Devuelve el reloj con zona, igual que zona pasada en parámetro.
Sintaxis:
public abstract Clock withZone(ZoneId zone)
Parámetro: Este método toma una zona de parámetro obligatoria de tipo ZoneId, en la que se requiere cambiar la zona horaria.
Devoluciones: este método devuelve una copia de reloj del objeto de reloj en el que se aplica este método, con una zona horaria diferente pasada como parámetro.
Ejemplo:
Code: //Clock with default zone Clock clock1=Clock.systemUTC(); ZoneId zone = ZoneId.of("Asia/Calcutta"); Clock clock2 = clock1.withZone(zone); System.out.println(clock2.toString()); Output:: SystemClock[Asia/Calcutta] Explanation:: when withZone() is called for Clock object clock1 with zoneId "Asia/Calcutta", then the withZone() method will return a Clock whose Zone is "Asia/Calcutta".
Los siguientes programas ilustran el método withZone() de la clase java.time.Clock:
Programa 1: Para crear un reloj con propiedades similares a First Clock pero zoneId igual a «Asia/Calcuta» con la ayuda de withZone().
// Java program to demonstrate // withZone() method of Clock class import java.time.*; // create class public class withZoneMethodDemo { // Main method public static void main(String[] args) { // create a base Clock with systemUTC() method Clock baseclock = Clock.systemUTC(); // get ZonedDateTime object from baseclock // clock instant to get date time ZonedDateTime baseTime = baseclock .instant() .atZone(baseclock.getZone()); // print details of ZonedDateTime System.out.println("ZonedDateTime of baseclock " + baseTime.toString()); // create ZoneId object with Zone Asia/Calcutta ZoneId zone = ZoneId.of("Asia/Calcutta"); // apply withZone() to change zone from utc to Asia/Calcutta Clock clockWithOtherZone = baseclock.withZone(zone); // get ZonedDateTime object from clockWithOtherZone // clock instant to get date time ZonedDateTime calcuttaTime = clockWithOtherZone .instant() .atZone(clockWithOtherZone.getZone()); // print details of ZonedDateTime System.out.println("ZonedDateTime of clockWithOtherZone " + calcuttaTime.toString()); } }
ZonedDateTime of baseclock 2018-08-24T08:09:17.354Z ZonedDateTime of clockWithOtherZone 2018-08-24T13:39:17.539+05:30[Asia/Calcutta]
Programa 2: Imprime el zoneId usando getZone() para el reloj creado por withZone().
// Java program to demonstrate // withZone() method of Clock class import java.time.*; // create class public class withZoneMethodDemo { // Main method public static void main(String[] args) { // create a base Clock with systemDefaultZone() method Clock baseclock = Clock.systemDefaultZone(); // print details of ZonedDateTime System.out.println("baseclock Zone:" + baseclock.getZone()); // create ZoneId object with Zone Asia/Calcutta ZoneId zone = ZoneId.of("Asia/Calcutta"); // apply withZone() to change zone // of baseclock to Asia/Calcutta Clock clockWithOtherZone = baseclock.withZone(zone); // print details of ZonedDateTime System.out.println("clockWithOtherZone Zone:" + clockWithOtherZone.getZone()); } }
baseclock Zone:Etc/UTC clockWithOtherZone Zone:Asia/Calcutta
Referencia:
https://docs.oracle.com/javase/8/docs/api/java/time/Clock.html#withZone-java.time.ZoneId-
Publicación traducida automáticamente
Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA