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

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

Java中 ZonedDateTime of() 方法及示例

在 ZonedDateTime 类中,根据传递给它的参数,有三种类型的 of() 方法。

of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond, ZoneId zone)

of() ZonedDateTime类的方法,用于从年、月、日、小时、分钟、秒、纳秒和时区获取 ZonedDateTime 的实例。所有这些值都是年、月、日、小时、分钟、秒,纳秒和时区作为参数传递。

句法:

public static ZonedDateTime of(int year, int month, 
                               int dayOfMonth,
                               int hour, int minute,
                               int second, int nanoOfSecond,
                               ZoneId zone)

参数:此方法接受八个不同的参数:

  • year – 要表示的年份,从 MIN_YEAR 到 MAX_YEAR。
  • month – 表示的月份,从 1(一月)到 12(十二月)。
  • dayOfMonth – 表示的日期,从 1 到 31。
  • hour -- 要表示的时间,从 0 到 23。
  • minute – 表示的分钟,从 0 到 59。
  • second – 表示的秒数,从 0 到 59。
  • nanoOfSecond – 表示从 0 到 999、999、999 的纳秒。
  • zone -- 时区,不为空。

返回值:此方法返回偏移日期时间。

异常:如果任何字段的值超出范围,或者月份日期对于月份年份无效,则此方法将引发DateTimeException

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

// Java program to demonstrate
// ZonedDateTime.of() method
  
import java.time.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create an ZonedDateTime object
        // using of method
        ZonedDateTime lt
            = ZonedDateTime.of(
                2020, 12, 3, 12, 20, 59,
                90000, ZoneId.systemDefault());
  
        // print result
        System.out.println("ZonedDateTime : "
                           + lt);
    }
}
输出:
ZonedDateTime : 2020-12-03T12:20:59.000090Z[Etc/UTC]

of(LocalDate 日期、LocalTime 时间、ZoneId 区域)

ZonedDateTime的 of(Clock clock)方法用于从本地日期、时间和区域返回 ZonedDateTime 的实例。所有这些本地日期、本地时间和区域都作为参数传递。

句法:

public static ZonedDateTime of(LocalDate date,
                               LocalTime time,
                               ZoneId zone)

参数:此方法接受三个不同的参数:

  • 日期 - 当地日期
  • 时间——当地时间
  • zone – 时区

返回值:此方法返回偏移日期时间。

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

// Java program to demonstrate
// ZonedDateTime.of() method
  
import java.time.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create a LocalDateTime
        LocalDate localdate
            = LocalDate.parse("2020-12-30");
  
        // create a LocalTime
        LocalTime localtime
            = LocalTime.parse("17:52:49");
  
        // create a zoneid
        ZoneId zid
            = ZoneId.of("Europe/Paris");
  
        // create an ZonedDateTime object
        // using of() method
        ZonedDateTime zt
            = ZonedDateTime.of(localdate,
                               localtime, zid);
  
        // print result
        System.out.println("ZonedDateTime : "
                           + zt);
    }
}
输出:
ZonedDateTime : 2020-12-30T17:52:49+01:00[Europe/Paris]

of(LocalDateTime localDateTime, ZoneId 区域)

ZonedDateTime的 of()方法用于从 localdatetime 和 zone 返回 ZonedDateTime 的实例。所有这些 localdatetime 和 zone 作为参数传递。

句法:

public static ZonedDateTime of(LocalDateTime localDateTime,
                               ZoneId zone)

参数:此方法接受两个不同的参数:

  • localDateTime – 本地日期时间
  • 时间——当地时间

返回值:此方法返回偏移日期时间。

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

// Java program to demonstrate
// ZonedDateTime.of() method
  
import java.time.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create a LocalDateTime
        LocalDateTime local
            = LocalDateTime
                  .parse("2018-11-03T12:45:30");
  
        // create a zoneid
        ZoneId zid = ZoneId.of("Europe/Paris");
  
        // create an ZonedDateTime object
        // using of()
        ZonedDateTime zt
            = ZonedDateTime.of(
                local, zid);
  
        // print result
        System.out.println("ZonedDateTime : "
                           + zt);
    }
}
输出:
ZonedDateTime : 2018-11-03T12:45:30+01:00[Europe/Paris]

参考:
https://docs.oracle.com/javase/10/docs/api/java Java, int, int, int, int, int, int, Java.time.ZoneId)
https://docs.oracle.com/javase/10/docs/api/ Java/time/ZonedDateTime.html#of(Java.time.LocalDate, Java.time.LocalTime, Java .time.ZoneId)
https://docs.oracle.com/javase/10/docs/api/java Java .time.LocalDateTime, Java Java)