📜  带有示例的Java 8 Clock instant() 方法

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

带有示例的Java 8 Clock instant() 方法

Java Clock 类是Java的日期时间 API Java .time.Clock 的一部分。 Java日期时间 API 是从Java版本 8 添加的。

Clock 类的 instant() 方法将 Clock 对象的当前时刻作为 Instant 类对象返回。 Instant 生成一个时间戳来表示机器时间。所以这个方法为时钟对象生成一个时间戳。这里返回的 Instant 是Java.time.Instant 类的对象,它表示 UTC 区域时间轴上的特定时刻。该时间线是自 1970 UTC 第一时刻以来的纳秒计数。由于现在大部分业务逻辑、数据存储和数据交换都应该使用 UTC,所以使用 Instant 很有用。

句法:

public abstract Instant instant()

返回值:此方法返回时钟对象的当前时刻

异常:如果无法获取时钟对象的时刻,此方法将抛出DateTimeException

例子:

Input:: 
a clock class Object e.g Clock.systemDefaultZone()

Output::
instant  e.g. 2018-08-19T20:22:23.366Z

Explanation:: 
when instant() is called, it returns a current instant of Clock Class Object. 

下面的程序说明了Java.time.Clock 类的 instant() 方法:

程序 1 :使用 Instant() 获取具有 systemDefaultZone 的时钟对象

// Java Program to demonstrate
// instant() method of Clock class
  
import java.time.*;
  
// create class
public class instantMethodDemo {
  
    // Main method
    public static void main(String[] args)
    {
  
        // create Clock Object
        Clock clock = Clock.systemDefaultZone();
  
        // get Instant Object of Clock
        // object using instant() method
        Instant instantObj = clock.instant();
  
        // print details of Instant Object
        System.out.println("Instant for class " + clock
                           + " is " + instantObj);
    }
}
输出:
Instant for class SystemClock[Etc/UTC] is 2018-08-21T05:31:10.662Z

程序 2 :使用 Instant() 获取具有“欧洲/巴黎”区域的时钟对象

要获取基于区域的日期和时间,请使用atZone(ZoneId zone)从即时获取 ZonedDateTime 对象以打印该区域的日期和时间。

句法:

// get ZonedDateTime object from instant object returned by instant() method of Clock class
ZonedDateTime time = Clock.systemDefaultZone().instant().atZone(Clock.getZone());

代码:

// Java Program to demonstrate
// instant() method of Clock class
  
import java.time.*;
  
// create class
public class instantMethodDemo {
  
    // Main method
    public static void main(String[] args)
    {
  
        // create a Zone Id for Europe/Paris
        ZoneId zoneId = ZoneId.of("Europe/Paris");
  
        // create Clock Object by passing zoneID
        Clock clock = Clock.system(zoneId);
  
        // get Instant Object of Clock
        // object using instant() method
        Instant instantObj = clock.instant();
  
        // get ZonedDateTime object from
        // instantObj to get zonal date time
        ZonedDateTime time = instantObj.atZone(clock.getZone());
  
        // print details of Instant Object
        System.out.println("Instant for class " + clock
                           + " is " + time.toString());
    }
}
输出:
Instant for class SystemClock[Europe/Paris] is 2018-08-21T07:31:13.525+02:00[Europe/Paris]

参考:
https://docs.oracle.com/javase/8/docs/api/java Java