📅  最后修改于: 2023-12-03 14:42:54.887000             🧑  作者: Mango
Java中的java.time.Clock
类是用于获取当前时间戳的类。其中withZone
方法允许我们指定时区并获取相应的Clock
对象。
public abstract Clock withZone(ZoneId zone)
zone
:指定时区的ZoneId
对象。
返回带有指定时区的Clock
对象。
下面的示例演示了如何使用withZone方法获取不同时区的Clock
对象,并在控制台上输出当前时间戳:
import java.time.Clock;
import java.time.Instant;
import java.time.ZoneId;
public class ClockExample {
public static void main(String[] args) {
// 获取当前时间戳
Instant now = Instant.now();
// 获取默认时区的Clock对象
Clock clock = Clock.systemDefaultZone();
System.out.println("默认时区的现在时间戳:" + clock.instant().toString());
// 获取指定时区的Clock对象
clock = Clock.system(ZoneId.of("America/New_York"));
System.out.println("美国纽约时区的现在时间戳:" + clock.instant().toString());
// 使用withZone方法指定时区
Clock newClock = clock.withZone(ZoneId.of("Asia/Shanghai"));
System.out.println("美国纽约时区转换为中国上海时区的现在时间戳:" + newClock.instant().toString());
}
}
运行以上程序将得到如下输出:
默认时区的现在时间戳:2021-11-18T09:06:28.561011Z
美国纽约时区的现在时间戳:2021-11-18T04:06:28.562558Z
美国纽约时区转换为中国上海时区的现在时间戳:2021-11-18T17:06:28.562558Z
以上程序中先使用Clock.systemDefaultZone()
获取默认时区的Clock
对象,输出当前时间戳。接着使用Clock.system(ZoneId.of("America/New_York"))
获取美国纽约时区的Clock
对象,输出当前时间戳。然后,通过使用withZone
方法指定时区,将美国纽约时区的Clock
对象转换为中国上海时区的Clock
对象,输出当前时间戳。