日期類

表示

在內部,Java Date 物件表示為 long; 它是自特定時間(稱為紀元 ) 以來的毫秒數。原始的 Java Date 類具有處理時區等的方法,但這些方法已被棄用,以支援當時新的 Calendar 類。

因此,如果你想要在程式碼中執行的操作代表特定時間,則可以建立 Date 類並儲存它等。但是,如果要列印出該日期的人類可讀版本,則可以建立 Calendar 類並使用其格式來生成小時,分鐘,秒,天,時區等。請記住,特定毫秒在不同時區顯示為不同的小時數; 通常你想在本地時區顯示一個,但格式化方法必須考慮到你可能想要為其他一些顯示它。

另請注意,JVM 使用的時鐘通常不具有毫秒精度; 時鐘可能每 10 毫秒只能滴答一次,因此,如果計時,你不能依賴於在那個級別準確測量事物。

匯入宣告

import java.util.Date;

Date 類可以從 java.util 包中匯入。

警告

Date 例項是可變的,因此使用它們會使編寫執行緒安全的程式碼變得困難,或者可能意外地提供對內部狀態的寫訪問。例如,在下面的類中,getDate() 方法允許呼叫者修改事務日期:

public final class Transaction {
  private final Date date;

  public Date getTransactionDate() {
    return date;
  }
}

解決方案是返回 date 欄位的副本或使用 Java 8 中引入的 java.time 中的新 API。

Date 類中的大多數建構函式方法已被棄用,不應使用。幾乎在所有情況下,建議使用 Calendar 類進行日期操作。

Java 8

Java 的 8 引入了新的時間和日期 API 的封裝 java.time,包括 LOCALDATE 的本地時間java.time 包中的類提供了一個易於使用的大修 API。如果你正在編寫 Java 8,強烈建議你使用此新 API。請參閱日期和時間(java.time。*)