Java怎么獲取當(dāng)前時(shí)間、計(jì)算程序運(yùn)行時(shí)間源碼詳解(超詳細(xì)!)
一、使用 System.currentTimeMillis()
這個(gè)方法的返回值為 long ,所以需要用 long 類(lèi)型的變量來(lái)接受。此方法優(yōu)勢(shì)是不受時(shí)區(qū)的影響,但是得到結(jié)果是時(shí)間戳的格式。
1、獲取當(dāng)前時(shí)間
public class Main{ public static void main(String[] args) { long time = System.currentTimeMillis(); System.out.println(time); //打印出來(lái)的是時(shí)間戳 } }
我們可以通過(guò)代碼將其轉(zhuǎn)換成平時(shí)我們看到的時(shí)間格式:
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)); //打印出來(lái)的是時(shí)間格式 System.out.println(time); //打印出來(lái)的是時(shí)間戳 } }
運(yùn)行結(jié)果:
2、計(jì)算程序運(yùn)行時(shí)間
通過(guò)System.currentTimeMillis()來(lái)計(jì)算程序運(yùn)行消耗的時(shí)間很簡(jiǎn)單,在頭尾都記下當(dāng)前時(shí)間,然后相減就可以了。
public class Main{ public static void main(String[] args) { long time1 = System.currentTimeMillis(); //程序內(nèi)容 long time2 = System.currentTimeMillis(); System.out.println("程序運(yùn)行時(shí)間:" + (time2 - time1)); } }
二、使用 import java.util.Date
這個(gè)方法的返回值為 long ,所以需要用 long 類(lèi)型的變量來(lái)接受。得到結(jié)果也是時(shí)間戳的格式。
1、獲取當(dāng)前時(shí)間
// 時(shí)間戳格式
public class Main{ public static void main(String[] args) { Date date = new Date(); long time = date.getTime(); System.out.println(time); //時(shí)間戳 } }
// 上面獲取的日期也可以通過(guò) 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)); //時(shí)分秒 } }
2、計(jì)算程序運(yùn)行時(shí)間
這邊計(jì)算程序運(yùn)行時(shí)間的原理與 System.currentTimeMillis() 的相同,在頭尾都記下當(dāng)前時(shí)間,然后相減就可以了。
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("程序運(yùn)行時(shí)間:" + (time2 - time1)); } }
三、Calendar 類(lèi)
Calendar 類(lèi),是專(zhuān)門(mén)用來(lái)轉(zhuǎn)換特定時(shí)刻和日歷字段之間的日期和時(shí)間。
獲取當(dāng)前時(shí)間
import java.util.Calendar; public class Main{ public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); System.out.println(calendar.getTime()); } }
// 上面獲取的日期也可以通過(guò) 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 提供了一個(gè)全新的 API ,用來(lái)替換 Java.util.Date 和 Java.util.Calendar。Date/Time API 提供了多個(gè)類(lèi),幫助我們完成工作。
1、LocalDate
LocalDate 一般只顯示日期,沒(méi)有時(shí)間。這意味著我們只能獲取當(dāng)前日期,但沒(méi)有一天的具體時(shí)間。
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 相反,它只能獲取時(shí)間,而不能獲取日期。
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)系起來(lái),即可以獲取日期,又可以獲取時(shí)間。因此, LocalDateTime 是Java中最常用的 Date/Time 類(lèi)。
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 日期時(shí)間 API 的類(lèi)表示日期和時(shí)間時(shí)區(qū)信息。ZonedDateTime 一般是不可改變的,這意味著該類(lèi)的對(duì)象執(zhí)行計(jì)算的所有方法都會(huì)返回一個(gè)新的 ZonedDateTime 。
創(chuàng)建方式:
import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZonedDateTime dateTime = ZonedDateTime.now(); } }
ZonedDateTime 有許多方法可以訪(fǎng)問(wèn)時(shí)間:
?直接調(diào)用即可~
總結(jié)
到此這篇關(guān)于Java怎么獲取當(dāng)前時(shí)間、計(jì)算程序運(yùn)行時(shí)間源碼詳解的文章就介紹到這了,更多相關(guān)Java獲取當(dāng)前時(shí)間計(jì)算程序運(yùn)行時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot整合jasypt實(shí)現(xiàn)重要數(shù)據(jù)加密
Jasypt是一個(gè)專(zhuān)注于簡(jiǎn)化Java加密操作的開(kāi)源工具,這篇文章主要為大家介紹了詳細(xì)介紹了如何使用jasypt實(shí)現(xiàn)重要數(shù)據(jù)加密,感興趣的小伙伴可以了解下2025-03-03Java實(shí)現(xiàn)經(jīng)典游戲俄羅斯方塊(升級(jí)版)的示例代碼
俄羅斯方塊是一款風(fēng)靡全球,從一開(kāi)始到現(xiàn)在都一直經(jīng)久不衰的電腦、手機(jī)、掌上游戲機(jī)產(chǎn)品,是一款游戲規(guī)則簡(jiǎn)單,但又不缺乏樂(lè)趣的簡(jiǎn)單經(jīng)典小游戲。本文將用Java語(yǔ)言實(shí)現(xiàn)這一經(jīng)典游戲,需要的可以參考一下2022-09-09基于hibernate框架在eclipse下的配置方法(必看篇)
下面小編就為大家?guī)?lái)一篇基于hibernate框架在eclipse下的配置方法(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09java實(shí)現(xiàn)簡(jiǎn)單發(fā)送郵件功能
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單發(fā)送郵件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04通過(guò)使用Byte?Buddy便捷創(chuàng)建Java?Agent
這篇文章主要為大家介紹了如何通過(guò)使用Byte?Buddy便捷創(chuàng)建Java?Agent的使用說(shuō)明,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03面向?qū)ο蠛兔嫦蜻^(guò)程的區(qū)別(動(dòng)力節(jié)點(diǎn)java學(xué)院整理)
很多朋友不清楚面向?qū)ο蠛兔嫦蜻^(guò)程有什么區(qū)別,接下來(lái)小編給大家整理了關(guān)于面向?qū)ο蠛兔嫦蜻^(guò)程的區(qū)別講解,感興趣的朋友可以參考下2017-04-04Java中List對(duì)象集合按對(duì)象中某字段進(jìn)行排序舉例
這篇文章主要給大家介紹了關(guān)于Java中List對(duì)象集合按對(duì)象中某字段進(jìn)行排序的相關(guān)資料,我們?cè)谌粘i_(kāi)發(fā)中也經(jīng)常會(huì)用到排序算法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07java正則表達(dá)式如何獲取xml文件中指定節(jié)點(diǎn)的值
這篇文章主要介紹了java正則表達(dá)式如何獲取xml文件中指定節(jié)點(diǎn)的值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06