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
广告