Java程式獲取兩個時間點之間的毫秒數


在本文中,我們將演示如何使用ChronoUnit 類計算兩個Instant 物件之間以毫秒為單位的差值。它展示瞭如何在java.time 包中使用基於時間類,特別側重於建立和操作時間點以及計算它們之間的時間差。

ChronoUnit: 一組標準的日期和時間單位,允許您操作日期、時間和日期時間。這些單位,例如年、月和日,旨在適用於各種日曆系統,儘管具體規則可能略有不同。您還可以透過實現TemporalUnit 介面來擴充套件這些單位。

問題陳述

使用 Java 的 Instant、Duration 和 ChronoUnit 類計算兩個特定時間點之間以毫秒為單位的時間差

輸出

Milliseconds between two time instants = 18050000

獲取兩個時間點之間毫秒數的步驟

以下是獲取兩個時間點之間毫秒數的步驟:

  • java.time 包匯入必要的類。
  • 建立初始時間點,使用Instant.now()捕獲當前時間time1
  • 透過使用plus() 方法向 time1 新增 5 小時 50 秒來建立第二個時間點time2
  • 定義持續時間為 13 秒。
  • 將此持續時間新增到time1以獲取新的時間點i
  • 使用ChronoUnit.MILLIS.between()查詢time1time2之間以毫秒為單位的差值。
  • 列印結果

Java程式獲取兩個時間點之間的毫秒數

以下是獲取兩個時間點之間毫秒數的Java程式:

import java.time.Duration;
import java.time.Instant;
import java.time.temporal.ChronoUnit;

public class Demo {
    public static void main(String[] args) {
        Instant time1 = Instant.now();
        Instant time2 = time1.plus(5, ChronoUnit.HOURS).plus(50, ChronoUnit.SECONDS);
        Duration duration = Duration.ofSeconds(13);
        Instant i = time1.plus(duration);
        System.out.println("Milliseconds between two time instants = " +
            ChronoUnit.MILLIS.between(time1, time2));
    }
}

輸出

Milliseconds between two time instants = 18050000

程式碼解釋

該程式從java.time 包匯入類以處理時間點和持續時間。它首先使用Instant.now()建立一個表示當前時刻的時間點time1

首先,建立兩個時間點:

Instant time1 = Instant.now();
Instant time2 = time1.plus(5, ChronoUnit.HOURS).plus(50, ChronoUnit.SECONDS);

然後,透過使用 Instant 類的plus()方法向time1新增 5 小時 50 秒來建立第二個時間點time2。定義一個長度為 13 秒的Duration 物件,然後將其新增到time1以建立另一個時間點i

Duration duration = Duration.ofSeconds(13);
Instant i = time1.plus(duration);
System.out.println("Milliseconds between two time instants = "+ChronoUnit.MILLIS.between(time1, time2));

為了確定time1time2之間以毫秒為單位的時間差,使用了ChronoUnit.MILLIS.between()方法。列印結果,顯示兩個時間點之間以毫秒為單位的總時間差。

更新於: 2024年8月12日

2K+ 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.