Java怎么獲取當前時間、計算程序運行時間源碼詳解(超詳細!)
一、使用 System.currentTimeMillis()
這個方法的返回值為 long ,所以需要用 long 類型的變量來接受。此方法優(yōu)勢是不受時區(qū)的影響,但是得到結(jié)果是時間戳的格式。
1、獲取當前時間
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()來計算程序運行消耗的時間很簡單,在頭尾都記下當前時間,然后相減就可以了。
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、獲取當前時間
// 時間戳格式
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() 的相同,在頭尾都記下當前時間,然后相減就可以了。
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)換特定時刻和日歷字段之間的日期和時間。
獲取當前時間
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 一般只顯示日期,沒有時間。這意味著我們只能獲取當前日期,但沒有一天的具體時間。
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); //默認格式輸出 } }
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); //默認格式輸出 } }
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); //默認格式輸出 } }
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怎么獲取當前時間、計算程序運行時間源碼詳解的文章就介紹到這了,更多相關(guān)Java獲取當前時間計算程序運行時間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot整合jasypt實現(xiàn)重要數(shù)據(jù)加密
Jasypt是一個專注于簡化Java加密操作的開源工具,這篇文章主要為大家介紹了詳細介紹了如何使用jasypt實現(xiàn)重要數(shù)據(jù)加密,感興趣的小伙伴可以了解下2025-03-03Java實現(xiàn)經(jīng)典游戲俄羅斯方塊(升級版)的示例代碼
俄羅斯方塊是一款風靡全球,從一開始到現(xiàn)在都一直經(jīng)久不衰的電腦、手機、掌上游戲機產(chǎn)品,是一款游戲規(guī)則簡單,但又不缺乏樂趣的簡單經(jīng)典小游戲。本文將用Java語言實現(xiàn)這一經(jīng)典游戲,需要的可以參考一下2022-09-09基于hibernate框架在eclipse下的配置方法(必看篇)
下面小編就為大家?guī)硪黄趆ibernate框架在eclipse下的配置方法(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09通過使用Byte?Buddy便捷創(chuàng)建Java?Agent
這篇文章主要為大家介紹了如何通過使用Byte?Buddy便捷創(chuàng)建Java?Agent的使用說明,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進步2022-03-03面向?qū)ο蠛兔嫦蜻^程的區(qū)別(動力節(jié)點java學院整理)
很多朋友不清楚面向?qū)ο蠛兔嫦蜻^程有什么區(qū)別,接下來小編給大家整理了關(guān)于面向?qū)ο蠛兔嫦蜻^程的區(qū)別講解,感興趣的朋友可以參考下2017-04-04java正則表達式如何獲取xml文件中指定節(jié)點的值
這篇文章主要介紹了java正則表達式如何獲取xml文件中指定節(jié)點的值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06