Java程序獲取當前時間

一、通過Date類獲取當前時間

Java程序可以使用Date類獲取當前系統時間,可以獲得時間的毫秒數。

    Date date = new Date();
    System.out.println(date);

輸出結果為:

    Wed Nov 25 11:56:27 CST 2020

通過Date對象的toString()方法,可以將系統時間格式化為字元串類型。

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String currentTime = sdf.format(date);
    System.out.println(currentTime);

輸出結果為:

    2020-11-25 11:56:27

二、通過Calendar類獲取當前時間

Java程序還可以使用Calendar類獲取當前系統時間,可以更加方便的獲取年、月、日、時、分、秒等具體時間。

    Calendar calendar = Calendar.getInstance();
    int year = calendar.get(Calendar.YEAR);
    int month = calendar.get(Calendar.MONTH) + 1;
    int day = calendar.get(Calendar.DATE);
    int hour = calendar.get(Calendar.HOUR_OF_DAY);
    int minute = calendar.get(Calendar.MINUTE);
    int second = calendar.get(Calendar.SECOND);
    System.out.println(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second);

輸出結果為:

    2020-11-25 12:13:35

三、通過Instant類獲取當前時間

Java程序還可以使用Java 8中的新時間API(包括Instant類和LocalDateTime類)獲取當前系統時間,使用起來更加簡單。

    Instant instant = Instant.now();
    System.out.println(instant);

輸出結果為:

    2020-11-25T04:19:27.693Z

Instant可以通過atZone()方法轉換為本地時間,使用toLocalDateTime()方法可以轉換為LocalDateTime對象。

    ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault());
    System.out.println(zonedDateTime);
    LocalDateTime localDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
    System.out.println(localDateTime);

輸出結果為:

    2020-11-25T12:06:04.635+08:00[Asia/Shanghai]
    2020-11-25T12:06:04.635

四、當地時間和UTC時間的轉換

如果需要將當地時間轉換為UTC時間,可以使用Java 8提供的新時間API中的ZoneOffset類。

    LocalDateTime localDateTime = LocalDateTime.now();
    System.out.println(localDateTime);
    ZoneOffset offset = OffsetDateTime.now().getOffset();
    // 獲得本地時間與UTC時間的偏差
    System.out.println(offset);
    Instant instant = localDateTime.toInstant(offset);
    // 轉換為UTC時間
    System.out.println(instant);

輸出結果為:

    2020-11-25T12:34:11.743
    +08:00
    2020-11-25T04:34:11.743Z

五、獲取時間戳

Java程序還可以使用System類獲取時間戳,可以獲得當前時間與1970年1月1日00:00:00之間的毫秒數或秒數。

    long timestampInMillis = System.currentTimeMillis();
    System.out.println(timestampInMillis + "ms");
    long timestampInSeconds = timestampInMillis / 1000;
    System.out.println(timestampInSeconds + "s");

輸出結果為:

    1606277658455ms
    1606277658s

六、總結

本文介紹了Java程序獲取當前時間的幾種常用方法,包括使用Date類、Calendar類、Instant類以及System類等。通過這些方式,可以獲得當前系統時間、當地時間和UTC時間的轉換、以及時間戳等。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/257568.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:45
下一篇 2024-12-15 12:45

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29

發表回復

登錄後才能評論