Java怎么獲取當(dāng)前時間、計算程序運行時間源碼詳解(超詳細(xì)!)
一、使用 System.currentTimeMillis()

這個方法的返回值為 long ,所以需要用 long 類型的變量來接受。此方法優(yōu)勢是不受時區(qū)的影響,但是得到結(jié)果是時間戳的格式。
1、獲取當(dāng)前時間
public class Main{
public static void main(String[] args) {
long time = System.currentTimeMillis();
System.out.println(time); //打印出來的是時間戳
}
}
我們可以通過代碼將其轉(zhuǎn)換成平時我們看到的時間格式:
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main{
public static void main(String[] args) {
long time = System.currentTimeMillis();
SimpleDateFormat s = new SimpleDateFormat();
Date date = new Date();
System.out.println(s.format(date)); //打印出來的是時間格式
System.out.println(time); //打印出來的是時間戳
}
}
運行結(jié)果:

2、計算程序運行時間
通過System.currentTimeMillis()來計算程序運行消耗的時間很簡單,在頭尾都記下當(dāng)前時間,然后相減就可以了。
public class Main{
public static void main(String[] args) {
long time1 = System.currentTimeMillis();
//程序內(nèi)容
long time2 = System.currentTimeMillis();
System.out.println("程序運行時間:" + (time2 - time1));
}
}二、使用 import java.util.Date

這個方法的返回值為 long ,所以需要用 long 類型的變量來接受。得到結(jié)果也是時間戳的格式。
1、獲取當(dāng)前時間
// 時間戳格式
public class Main{
public static void main(String[] args) {
Date date = new Date();
long time = date.getTime();
System.out.println(time); //時間戳
}
}// 上面獲取的日期也可以通過 format 轉(zhuǎn)換成我們所需要的格式,如:
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main{
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat s1 = new SimpleDateFormat("YYYY-MM-DD");
SimpleDateFormat s2 = new SimpleDateFormat("hh:mm:ss");
System.out.println(s1.format(date)); //年月日
System.out.println(s2.format(date)); //時分秒
}
}2、計算程序運行時間
這邊計算程序運行時間的原理與 System.currentTimeMillis() 的相同,在頭尾都記下當(dāng)前時間,然后相減就可以了。
import java.util.Date;
public class Main{
public static void main(String[] args) {
Date date = new Date();
long time1 = date.getTime();
//程序主體
long time2 = date.getTime();
System.out.println("程序運行時間:" + (time2 - time1));
}
}
三、Calendar 類
Calendar 類,是專門用來轉(zhuǎn)換特定時刻和日歷字段之間的日期和時間。
獲取當(dāng)前時間
import java.util.Calendar;
public class Main{
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime());
}
}// 上面獲取的日期也可以通過 format 轉(zhuǎn)換成我們所需要的格式,如:
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Main {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(s.format(calendar.getTime()));
//System.out.println(calendar.getTime());
}
}
四、Date/Time API
Java 8 提供了一個全新的 API ,用來替換 Java.util.Date 和 Java.util.Calendar。Date/Time API 提供了多個類,幫助我們完成工作。
1、LocalDate
LocalDate 一般只顯示日期,沒有時間。這意味著我們只能獲取當(dāng)前日期,但沒有一天的具體時間。
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Demo5 {
public static void main(String[] args) {
LocalDate localDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM-dd");
System.out.println(localDate.format(formatter)); //指定格式輸出
System.out.println(localDate); //默認(rèn)格式輸出
}
}2、LocalTime
LocalTime 則與 LocalDate 相反,它只能獲取時間,而不能獲取日期。
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class Demo6 {
public static void main(String[] args) {
LocalTime localTime = LocalTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("mm:ss");
System.out.println(localTime.format(formatter)); //指定格式輸出
System.out.println(localTime); //默認(rèn)格式輸出
}
}
3、LocalDateTime
LocalDateTime 顧名思義,就是將以上兩者聯(lián)系起來,即可以獲取日期,又可以獲取時間。因此, LocalDateTime 是Java中最常用的 Date/Time 類。
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDateTime dateTime = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy hh:mm:ss");
System.out.println(dateTime.format(formatter)); //指定格式輸出
System.out.println(dateTime); //默認(rèn)格式輸出
}
}
4、ZonedDateTime
ZoneDateTime 在 Java 8 日期時間 API 的類表示日期和時間時區(qū)信息。ZonedDateTime 一般是不可改變的,這意味著該類的對象執(zhí)行計算的所有方法都會返回一個新的 ZonedDateTime 。
創(chuàng)建方式:
import java.time.ZonedDateTime;
public class Main {
public static void main(String[] args) {
ZonedDateTime dateTime = ZonedDateTime.now();
}
}ZonedDateTime 有許多方法可以訪問時間:

?直接調(diào)用即可~
總結(jié)
到此這篇關(guān)于Java怎么獲取當(dāng)前時間、計算程序運行時間源碼詳解的文章就介紹到這了,更多相關(guān)Java獲取當(dāng)前時間計算程序運行時間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JAVA?GUI基礎(chǔ)與MouseListener用法
這篇文章主要介紹了JAVA?GUI基礎(chǔ)與MouseListener用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
SMBMS超市訂單管理系統(tǒng)的網(wǎng)站源碼
這篇文章主要介紹了SMBMS超市訂單管理系統(tǒng),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-05-05
SpringBoot3實現(xiàn)webclient的通用方法詳解
Spring Boot WebClient 是 Spring Framework 5 中引入的一個新的響應(yīng)式 Web 客戶端,用于異步和響應(yīng)式地與外部服務(wù)進行通信,下面我們就來看看SpringBoot3實現(xiàn)webclient的通用方法吧2024-04-04
Java8中關(guān)于Function.identity()的使用
這篇文章主要介紹了Java8中關(guān)于Function.identity()的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
Idea2020.2創(chuàng)建JavaWeb項目(部署Tomcat)方法詳解
這篇文章主要介紹了Idea2020.2創(chuàng)建JavaWeb項目(部署Tomcat)方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08

