带有示例的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