Java Date from() 方法



描述

Java Date from(Instant instant) 方法返回一個從 Instant 物件建立的 Date 例項。Instant 使用更高精度的納秒,而 Date 使用毫秒精度。轉換過程中,任何多餘的精度資訊都將被截斷。Instant 可以儲存比 Date 更久遠或更未來的時間點,這種情況會丟擲異常。

宣告

以下是 java.util.Date.from(Instant instant) 方法的宣告

public static Date from​(Instant instant)

引數

instant − 要轉換的瞬間。

返回值

此方法返回一個 Date 物件,表示與提供的 instant 相同的時間點。

異常

NullPointerException − 如果 instant 為 null。

IllegalArgumentException − 如果 instant 太大而無法表示為 Date。

從 Instant.now() 方法建立 Date 例項示例

以下示例演示了 Java Date from() 方法的用法。我們使用 from() 方法使用 Instant 建立當前時間的 Date 例項。

package com.tutorialspoint;

import java.time.Instant;
import java.util.Date;

public class DateDemo {
   public static void main(String[] args) {

      // create a date
      Date date = Date.from(Instant.now());

      System.out.println("Date: " + date.toString());
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

Date: Mon Apr 01 12:10:07 IST 2024

從 Instant.MAX 屬性建立 Date 例項示例

以下示例演示了 Java Date from() 方法的用法。我們使用 from() 方法使用 Instant.MAX 建立當前時間的 Date 例項。由於 Instant 太大而無法轉換為 Date,因此會發生異常。

package com.tutorialspoint;

import java.time.Instant;
import java.util.Date;

public class DateDemo {
   public static void main(String[] args) {

      // create a date
      Date date = Date.from(Instant.MAX);

      System.out.println("Date: " + date.toString());
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

Exception in thread "main" java.lang.IllegalArgumentException: java.lang.ArithmeticException: long overflow
	at java.base/java.util.Date.from(Date.java:1362)
	at com.tutorialspoint.DateDemo.main(DateDemo.java:10)
Caused by: java.lang.ArithmeticException: long overflow
	at java.base/java.lang.Math.multiplyExact(Math.java:946)
	at java.base/java.lang.Math.multiplyExact(Math.java:922)
	at java.base/java.time.Instant.toEpochMilli(Instant.java:1236)
	at java.base/java.util.Date.from(Date.java:1360)
	... 1 more

比較 Date 例項與 Instant.now() 時間的示例

以下示例演示了 Java Date from() 方法的用法。我們使用 from() 方法使用 Instant 建立當前時間的 Date 例項。此處 date 物件會截斷納秒。

package com.tutorialspoint;

import java.time.Instant;
import java.util.Date;

public class DateDemo {
   public static void main(String[] args) {

      // create a date
      Date date = Date.from(Instant.now());
      
      System.out.println(Instant.now());

      System.out.println("Date: " + date.toString());
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

2024-04-01T06:39:42.885311400Z
Date: Mon Apr 01 12:09:42 IST 2024
java_util_date.htm
廣告
© . All rights reserved.