
Java獲取當(dāng)前時間的幾種方法
聲明:該文章由作者(程念慈)發(fā)表,轉(zhuǎn)載此文章須經(jīng)作者同意并請附上出處(0XUCN)及本頁鏈接。。
開發(fā)過程中,可能會遇到精確的時間差值計(jì)算,可以使用System.nanoTime();方法獲取當(dāng)前系統(tǒng)的納秒值。不過該方法只能用于測量經(jīng)過時間,與系統(tǒng)時間的任何其他概念無關(guān)。用途:計(jì)算時間差,當(dāng)隨機(jī)數(shù)來使用(不建議)。
獲取當(dāng)前時間的毫秒值:System.currentTimeMillis();返回long型。
通過java.util.Date實(shí)例中的getTime()方法獲取當(dāng)前時間的毫秒值(從1970年1月1日算起),此方法在開發(fā)中經(jīng)常被使用。如果只是為了獲取當(dāng)前時間的毫秒值,其實(shí)是沒必要這么做的,直接使用System.currentTimeMillis()即可獲取。下圖Java源碼中,當(dāng)實(shí)例化一個Date對象的時候,其實(shí)使用的就是System.currentTimeMillis(),接著使用getTime()再讓JVM去計(jì)算一遍獲取當(dāng)前毫秒值實(shí)在是多次一舉,耗費(fèi)了性能。
Instant:JAVA8新特性,獲取當(dāng)前瞬間的實(shí)例。如果想要獲取更精確的納秒級時間值,可以使用Instant對象。Instant中不提供公共的構(gòu)造方法,因此只能使用靜態(tài)方法獲取Instant實(shí)例。簡單介紹一下Instant對象中的常用方法。
- Instant.now();獲取當(dāng)前時間的瞬間實(shí)例,靜態(tài)方法,返回Instant類型
- getEpochSecond();得到瞬間實(shí)例的秒值
- toEpochMilli();得到瞬間實(shí)例的毫秒值
- getNano();得到瞬間實(shí)例的納秒值
- isAfter(Instant instant);比較這個瞬間是否在指定的時刻之后
- isBefore(Instant instant);比較這個瞬間是否在指定的時刻之前
- equals(Instant instant);檢查這個瞬間是否等于指定的時刻
代碼
????//該方法只能用于測量經(jīng)過時間,與系統(tǒng)時間的任何其他概念無關(guān)。用途:計(jì)算時間差,當(dāng)隨機(jī)數(shù)來使用(不建議)
????System.out.println(System.nanoTime());//47307604336560 ????//獲取系統(tǒng)當(dāng)前時間的毫秒值,從1970 年 1 月 1 日起計(jì)算 ????System.out.println(System.currentTimeMillis());//1541509585320 ????//獲取系統(tǒng)當(dāng)前時間的毫秒值,不建議這么使用.建議使用上面的方法. ????System.out.println(new Date().getTime());//1541509585322 ????? ????//獲取當(dāng)前瞬間的實(shí)例,JAVA8新特性 ????Instant instant = Instant.now(); ????System.out.println(instant);//2018-11-06T13:06:25.353Z ????//得到當(dāng)前瞬間的秒數(shù) ????System.out.println(instant.getEpochSecond());//1541509585 ????//得到當(dāng)前瞬間的毫秒數(shù) ????System.out.println(instant.toEpochMilli());//1541509585353 ????//得到當(dāng)前瞬間的納秒數(shù) ????System.out.println(instant.getNano());//353000000 ????? ????Instant instantA= Instant.now(); ????//比較兩個instant的前后關(guān)系,返回boolean類型 ????System.out.println(instant.isAfter(instantA));//false ????System.out.println(instant.isBefore(instantA));//true ????//比較兩個instant是否相等 ????System.out.println(instant.equals(instantA));//false
[超站]友情鏈接:
四季很好,只要有你,文娛排行榜:https://www.yaopaiming.com/
關(guān)注數(shù)據(jù)與安全,洞悉企業(yè)級服務(wù)市場:https://www.ijiandao.com/
- 1 從總書記的話語中感悟深沉的家國情 7904462
- 2 北方將現(xiàn)氣溫大逆轉(zhuǎn) 7807947
- 3 敘利亞前總統(tǒng)阿薩德被投毒 7713576
- 4 中國完成首次極區(qū)載人深潛調(diào)查任務(wù) 7617304
- 5 肯德基保密54年的炸雞配方將公開 7521398
- 6 普京:向“中國兄弟姐妹”致意 7423721
- 7 國慶出行 網(wǎng)警送你一份網(wǎng)絡(luò)安全指南 7334192
- 8 知名車評人陳震發(fā)生交通事故 7231817
- 9 黃蓉來開公交了 7137601
- 10 越來越多人喜歡上“搭子”社交 7040122