📌  相关文章
📜  Java中的 ChronoLocalDateTime atZone() 方法及示例

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

Java中的 ChronoLocalDateTime atZone() 方法及示例

ChronoLocalDateTime 接口atZone(ZoneId zone)方法用于将此 ChronoLocalDateTime 与以 ZoneId 作为参数给出的时区组合以创建 ZonedDateTime 对象。该方法以 ZoneId 为参数,在操作返回 ChronoZonedDateTime 对象后,将时区与此 ChronoLocalDateTime 结合起来。

句法:

ChronoZonedDateTime atZone(ZoneId zone)

参数:此方法接受一个参数zone ,该参数是要与此 ChronoLocalDateTime 对象组合的区域。它不应该为空。

返回值:该方法返回一个ChronoZonedDateTime ,它是 ChronoLocalDateTime 的当前区域和作为参数传递的区域的组合。

下面的程序说明了 ChronoLocalDateTime.atZone() 方法:

方案一:

// Java program to demonstrate
// ChronoLocalDateTime.atZone() method
  
import java.time.*;
import java.time.chrono.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create an ChronoLocalDateTime object
        ChronoLocalDateTime date
            = LocalDateTime.parse("2018-12-06T19:21:12");
  
        // print ChronoLocalDateTime Value
        System.out.println("ChronoLocalDateTime: "
                           + date);
  
        // create ZoneId object
        ZoneId zone = ZoneId.of("Europe/Paris");
  
        // apply atZone method of ChronoLocalDateTime class
        ChronoZonedDateTime result = date.atZone(zone);
  
        // print results
        System.out.println("ChronoZonedDateTime: "
                           + result);
    }
}
输出:
ChronoLocalDateTime: 2018-12-06T19:21:12
ChronoZonedDateTime: 2018-12-06T19:21:12+01:00[Europe/Paris]

方案二:

// Java program to demonstrate
// ChronoLocalDateTime.atZone() method
  
import java.time.*;
import java.time.chrono.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create an ChronoLocalDateTime object
        ChronoLocalDateTime date
            = LocalDateTime.parse("2018-12-06T19:21:12");
  
        // print ChronoLocalDateTime Value
        System.out.println("ChronoLocalDateTime: "
                           + date);
  
        // create ZoneId object
        ZoneId zone = ZoneId.of("Asia/Aden");
  
        // apply atZone method
        ChronoZonedDateTime result
            = date.atZone(zone);
  
        // print results
        System.out.println("ChronoZonedDateTime: "
                           + result);
    }
}
输出:
ChronoLocalDateTime: 2018-12-06T19:21:12
ChronoZonedDateTime: 2018-12-06T19:21:12+03:00[Asia/Aden]

参考:https://docs.oracle.com/javase/9/docs/api/ Java/time/chrono/ChronoLocalDateTime.html#atZone-java.time.ZoneId-