📌  相关文章
📜  Java中 ZonedDateTime ofLocal() 方法及示例

📅  最后修改于: 2022-05-13 01:54:32.335000             🧑  作者: Mango

Java中 ZonedDateTime ofLocal() 方法及示例

ZonedDateTime类的ofLocal()方法,用于使用 ZonmeId 和首选偏移量从本地日期时间创建 ZonedDateTime 的实例,其中所有三个 localDateTime、ZoneOffset 和 ZoneId 作为参数传递。本地日期时间被解析为通过查找区域 ID 规则定义的本地日期时间与 UTC/格林威治的有效偏移量来实现时间线上的单个瞬间。

句法:

public static ZonedDateTime ofLocal(LocalDateTime localDateTime,
                                    ZoneId zone,
                                    ZoneOffset preferredOffset)

参数:此方法接受三个参数Instant是本地日期时间, zone是时区和ZoneOffset是区域偏移量。

返回值:此方法返回分区的日期时间。

下面的程序说明了 ofLocal() 方法:
方案一:

// 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]

方案二:

// 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 Java , Java Java)