Java中的 ZonedDateTime withZoneSameLocal() 方法及示例
ZonedDateTime类的withZoneSameLocal()方法用于通过更改时区返回此 ZonedDateTime 对象的副本,如果可能,不更改本地日期时间。本地日期时间仅在对新区域无效时才更改, 使用与 ofLocal(LocalDateTime, ZoneId, ZoneOffset) 相同的方法确定。
句法:
public ZonedDateTime withZoneSameLocal(ZoneId zone)
参数:此方法接受一个参数zone来更改时区。它不应为空。
返回值:此方法基于此日期时间与请求的区域返回ZonedDateTime 。
下面的程序说明了 withZoneSameLocal() 方法:
方案一:
// Java program to demonstrate
// ZonedDateTime.withZoneSameLocal() method
import java.time.*;
public class GFG {
public static void main(String[] args)
{
// create a ZonedDateTime object
ZonedDateTime zonedDT
= ZonedDateTime
.parse(
"2018-12-06T19:21:12.123+05:30[Asia/Calcutta]");
// print ZonedDateTime
System.out.println("ZonedDateTime of Calcutta: "
+ zonedDT);
// apply withZoneSameLocal()
ZonedDateTime zonedDT2
= zonedDT.withZoneSameLocal(
ZoneId.of("Pacific/Fiji"));
// print ZonedDateTime after withZoneSameLocal()
System.out.println("ZonedDateTime of Fuji: "
+ zonedDT2);
}
}
输出:
ZonedDateTime of Calcutta: 2018-12-06T19:21:12.123+05:30[Asia/Calcutta]
ZonedDateTime of Fuji: 2018-12-06T19:21:12.123+13:00[Pacific/Fiji]
方案二:
// Java program to demonstrate
// ZonedDateTime.withZoneSameLocal() method
import java.time.*;
public class GFG {
public static void main(String[] args)
{
// create a ZonedDateTime object
ZonedDateTime zonedDT
= ZonedDateTime
.parse(
"2018-10-25T23:12:31.123+02:00[Europe/Paris]");
// print ZonedDateTime
System.out.println("ZonedDateTime of Calcutta: "
+ zonedDT);
// apply withZoneSameLocal()
ZonedDateTime zonedDT2
= zonedDT
.withZoneSameLocal(
ZoneId.of("Canada/Yukon"));
// print ZonedDateTime after withZoneSameLocal()
System.out.println("ZonedDateTime of yukon: "
+ zonedDT2);
}
}
输出:
ZonedDateTime of Calcutta: 2018-10-25T23:12:31.123+02:00[Europe/Paris]
ZonedDateTime of yukon: 2018-10-25T23:12:31.123-07:00[Canada/Yukon]
参考: https: Java Java.time.ZoneId)