在 Java 日期中獲取當前時間戳
- 
          
            使用 Java 中的 Timestamp類獲取當前時間戳
- 
          
            使用 Java 中的 Date類獲取當前時間戳
- 
          
            使用 Java 中的 ZonedDateTime類獲取當前時間戳
- 
          
            使用 Java 中的 LocalDateTime類獲取當前時間戳
- 
          
            使用 Java 中的 Instant類獲取當前時間戳
- 
          
            使用 Java 中的 Timestamp類獲取當前時間戳
- 
          
            使用 Java 中的 toInstant()方法獲取當前時間戳
 
本教程介紹如何獲取 Java 中的當前時間戳,並列出一些示例程式碼以瞭解該主題。
有幾種獲取 Java 當前時間戳的方法,例如 Timspamp 類,Date 類,ZonedDateTime 類,LocalDateTime 類等。讓我們來看一些示例。
使用 Java 中的 Timestamp 類獲取當前時間戳
要獲取 Java 中的當前時間戳,可以使用 Timestamp 類。由於此類沒有預設的建構函式,因此我們以毫秒為單位傳遞時間。我們使用 System 類的 currentTimeMillis() 方法獲取時間。請參見下面的示例。
import java.sql.Timestamp;
public class SimpleTesting {
  public static void main(String[] args) {
    Long datetime = System.currentTimeMillis();
    Timestamp timestamp = new Timestamp(datetime);
    System.out.println("Current Time Stamp: " + timestamp);
  }
}
輸出:
Current Time Stamp: 2021-03-06 17:24:57.107
使用 Java 中的 Date 類獲取當前時間戳
我們可以使用 util 包的 Date 類來獲取當前時間戳。要以 yyyy.MM.dd 格式格式化時間戳,我們可以使用 SimpleDateFormat 類。請參見下面的示例。
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleTesting {
  public static void main(String[] args) {
    SimpleDateFormat date = new SimpleDateFormat("yyyy.MM.dd.HH:mm:ss");
    String timeStamp = date.format(new Date());
    System.out.println("Current Time Stamp: " + timeStamp);
  }
}
輸出:
Current Time Stamp: 2021.03.06.17:26:17
使用 Java 中的 ZonedDateTime 類獲取當前時間戳
Java datetime 包的 ZonedDateTime 類建立帶有區域資訊的時間戳。我們使用 ZoneId 的 systemDefault() 方法獲取系統的預設區域,並使用 now() 方法獲取具有指定 zoneId 的當前時間戳。
獲取當前時間戳後,我們使用 DateTimeFormatter 類的 ofPattern() 方法來獲取指定格式的時間戳。請參見下面的示例。
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class SimpleTesting {
  public static void main(String[] args) {
    ZoneId zid = ZoneId.systemDefault();
    ZonedDateTime datetime = ZonedDateTime.now(zid);
    System.out.println("Current Time Stamp: " + datetime);
    // if want to format into a specific format
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu.MM.dd.HH:mm:ss");
    String timeStamp = datetime.format(formatter);
    System.out.println("Current Time Stamp: " + timeStamp);
  }
}
輸出:
Current Time Stamp: 2021-03-06T17:35:52.722720362Z[Etc/UTC]
Current Time Stamp: 2021.03.06.17:35:52
使用 Java 中的 LocalDateTime 類獲取當前時間戳
如果你使用的是 Java 8,請使用 LocalDateTime 類獲取 Java 中的當前時間戳。請參見以下示例。
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class SimpleTesting {
  public static void main(String[] args) {
    LocalDateTime dateTime = LocalDateTime.now();
    System.out.println("Current Time Stamp Default Format: " + dateTime);
    String timeStamp = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(dateTime);
    System.out.println("Current Time Stamp: " + timeStamp);
  }
}
輸出:
Current Time Stamp Default Format: 2021-02-27T14:15:46.196564
Current Time Stamp: 2021-02-27 14:15:46
使用 Java 中的 Instant 類獲取當前時間戳
Instant 類可用於獲取當前時間戳。我們使用 Instant 類的 now() 方法來即時獲取當前時間戳。
import java.time.Instant;
public class SimpleTesting {
  public static void main(String[] args) {
    Instant timeStamp = Instant.now();
    System.out.println("Current Time Stamp Default Format: " + timeStamp);
  }
}
輸出:
Current Time Stamp Default Format: 2021-02-27T08:48:28.001913Z
使用 Java 中的 Timestamp 類獲取當前時間戳
這是通過 Timestamp 和 Instant 類獲取 Java 中當前時間戳的另一種解決方案。請參見下面的示例。
import java.sql.Timestamp;
import java.time.Instant;
public class SimpleTesting {
  public static void main(String[] args) {
    long time = System.currentTimeMillis();
    Timestamp timestamp = new Timestamp(time);
    Instant instant = timestamp.toInstant();
    System.out.println("Current Time Stamp: " + instant);
  }
}
輸出:
Current Time Stamp: 2021-02-27T08:50:05.125Z
使用 Java 中的 toInstant() 方法獲取當前時間戳
如果我們有一個表示時間戳的日期物件,我們還可以使用 Date 類的 toInstant() 方法來獲取當前的時間戳。
import java.time.Instant;
import java.util.Date;
public class SimpleTesting {
  public static void main(String[] args) {
    Date date = new Date();
    Instant instant = date.toInstant();
    System.out.println("Current Time Stamp: " + instant);
  }
}
輸出:
Current Time Stamp: 2021-02-27T08:51:34.223Z