Java ZonedDateTime ofLocal()方法及示例
ZonedDateTime 类的 ofLocal() 方法用于从本地日期时间创建一个ZonedDateTime的实例,该实例使用ZonmeId和首选偏移量(如果可能的话),其中所有三个localDateTime、ZoneOffset和ZoneId都作为参数传递。本地日期时间被解析为时间线上的一个瞬间,通过为本地日期时间找到一个由区域ID规则定义的、从UTC/Greenwich的有效偏移量来实现。
语法
public static ZonedDateTime ofLocal(LocalDateTime localDateTime,
ZoneId zone,
ZoneOffset preferredOffset)
参数: 该方法接受三个参数: Instant 是本地日期时间, zone 是时区, ZoneOffset 是时区偏移。
返回值: 该方法返回分区的日期时间。
以下程序说明了ofLocal()方法:
程序1 :
// Java program to demonstrate
// ZonedDateTime.ofLocal() method
import java.time.*;
public class GFG {
public static void main(String[] args)
{
// create localDateTime object
LocalDateTime lt
= LocalDateTime
.parse("2019-01-29T23:55:59.00");
// create ZoneOffset
ZoneOffset zoneOffset
= ZoneOffset.ofHours(11);
// create a ZonID
ZoneId zone
= ZoneId.of("Europe/Paris");
// apply ofLocal method
// of ZonedDateTime class
ZonedDateTime zt
= ZonedDateTime
.ofLocal(lt, zone, zoneOffset);
// print the result
System.out.println("ZonedDateTime is "
+ zt);
}
}
输出。
ZonedDateTime is 2019-01-29T23:55:59+01:00[Europe/Paris]
程序2
// Java program to demonstrate
// ZonedDateTime.ofLocal() method
import java.time.*;
public class GFG {
public static void main(String[] args)
{
// create localDateTime object
LocalDateTime lt
= LocalDateTime
.parse("2019-01-29T23:55:59.00");
// create ZoneOffset
ZoneOffset zoneOffset
= ZoneOffset.ofHours(10);
// create a ZonID
ZoneId zone
= ZoneId.of("Australia/Darwin");
// apply ofLocal method
// of ZonedDateTime class
ZonedDateTime zt
= ZonedDateTime
.ofLocal(lt, zone, zoneOffset);
// print the result
System.out.println("ZonedDateTime is "
+ zt);
}
}
输出。
ZonedDateTime is 2019-01-29T23:55:59+09:30[Australia/Darwin]
参考资料: https://docs.oracle.com/javase/10/docs/api/java/time/ZonedDateTime.html#ofInstant(java.time.LocalDateTime, java.time.ZoneOffset, java.time.ZoneId)