Java ZonedDateTime ofInstant()方法及示例
在ZonedDateTime类中,有两种类型的ofInstant()方法,取决于传递给它的参数。
ofInstant(Instant instant, ZoneId zone)
ZonedDateTime 类的 ofInstant() 方法用于从作为参数传递给该方法的Instant和zoneId中创建一个ZonedDateTime的实例。当你有一个Instant对象和zoneId,并且你想创建一个包含两者的ZonedDateTime的时钟时,这个方法非常有用。
语法
public static ZonedDateTime ofInstant(Instant instant,
ZoneId zone)
参数: 该方法接受两个参数 Instant ,它是创建日期时间的瞬间,不能为空;
zone ,它是时间区。
返回值: 该方法返回分区的日期时间。
异常: 该方法会抛出以下异常。
- DateTimeException – 如果结果超过了支持的范围。
以下程序说明了ofInstant()方法:
程序1 :
// Java program to demonstrate
// ZonedDateTime.ofInstant() method
import java.time.*;
public class GFG {
public static void main(String[] args)
{
// create Instant object
Instant lt
= Instant
.parse("2018-10-20T16:55:30.00Z");
// create a ZonID
ZoneId zone = ZoneId.of("Europe/Paris");
// apply ofInstant method
// of ZonedDateTime class
ZonedDateTime zt = ZonedDateTime
.ofInstant(lt, zone);
// print the result
System.out.println("ZonedDateTime is "
+ zt);
}
}
输出。
ZonedDateTime is 2018-10-20T18:55:30+02:00[Europe/Paris]
程序2
// Java program to demonstrate
// ZonedDateTime.ofInstant() method
import java.time.*;
public class GFG {
public static void main(String[] args)
{
// create Instant object
Instant lt
= Instant
.parse("2019-01-29T23:55:59.00Z");
// create a ZonID
ZoneId zone
= ZoneId.of("Australia/Darwin");
// apply ofInstant method
// of ZonedDateTime class
ZonedDateTime zt
= ZonedDateTime
.ofInstant(lt, zone);
// print the result
System.out.println("ZonedDateTime is "
+ zt);
}
}
输出。
ZonedDateTime is 2019-01-30T09:25:59+09:30[Australia/Darwin]
ofInstant(LocalDateTime localDateTime,, ZoneOffset offset, ZoneId zone)
ofInstant() 方法是 ZonedDateTime 类的一个方法,用于从本地日期时间中创建一个ZonedDateTime的实例,该方法由本地日期时间和偏移量组合而成,所有三个Instant、ZoneOffset和ZoneId都作为参数传递。
语法
public static ZonedDateTime ofInstant(LocalDateTime localDateTime,,
ZoneOffset offset, ZoneId zone)
参数: 该方法接受三个参数 localDateTime (本地日期时间)、 ZoneOffset (区域偏移)和 zone (时区)。
返回值: 该方法返回分区的日期时间。
以下程序说明了ofInstant()方法:
程序1 :
// Java program to demonstrate
// ZonedDateTime.ofInstant() 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 ofInstant method
// of ZonedDateTime class
ZonedDateTime zt
= ZonedDateTime
.ofInstant(lt, zoneOffset, zone);
// print the result
System.out.println("ZonedDateTime is "
+ zt);
}
}
输出。
ZonedDateTime is 2019-01-29T13:55:59+01:00[Europe/Paris]
程序2
// Java program to demonstrate
// ZonedDateTime.ofInstant() 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 ofInstant method
// of ZonedDateTime class
ZonedDateTime zt
= ZonedDateTime
.ofInstant(lt, zoneOffset, zone);
// print the result
System.out.println("ZonedDateTime is "
+ zt);
}
}
输出。
ZonedDateTime is 2019-01-29T23:25: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)
https://docs.oracle.com/javase/10/docs/api/java/time/ZonedDateTime.html#ofInstant(java.time.LocalDateTime, java.time.ZoneId)