国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > Java獲取當(dāng)前時(shí)間戳的方法

Java獲取當(dāng)前時(shí)間戳的方法

來源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-23 08:30:49 1700699449

在Java編程中,獲取當(dāng)前時(shí)間戳是一個常見需求,時(shí)間戳可以保存為long類型的整數(shù),是指從1970年1月1日0時(shí)0分0秒(UTC,即格林威治標(biāo)準(zhǔn)時(shí)間)開始到當(dāng)前時(shí)間的秒數(shù)。以下是幾種獲取Java當(dāng)前時(shí)間戳的方法:

一、使用System.currentTimeMillis()

long timestamp = System.currentTimeMillis();

System.currentTimeMillis()返回從UTC 1970年1月1日0時(shí)0分0秒到當(dāng)前時(shí)間的毫秒數(shù),我們可以直接除以1000轉(zhuǎn)換成秒數(shù),也可以將返回值直接保存到long類型的變量中。

使用System.currentTimeMillis()方法獲取時(shí)間戳的優(yōu)點(diǎn)是方法執(zhí)行速度快,缺點(diǎn)是返回值只能精確到毫秒級,如果需要更精確的時(shí)間戳,可以使用System.nanoTime()方法。

二、使用Instant.now().getEpochSecond()

long timestamp = Instant.now().getEpochSecond();

Instant類是Java 8新增的API,可以用來表示時(shí)間線上的一個瞬間。可以獲取當(dāng)前的Instant實(shí)例,然后調(diào)用getEpochSecond()方法得到從UTC 1970年1月1日0時(shí)0分0秒到當(dāng)前時(shí)間的秒數(shù)。

使用Instant類獲取時(shí)間戳的優(yōu)點(diǎn)是可以精確到納秒級別,缺點(diǎn)是代碼編寫比較麻煩,而且需要使用Java 8以上的版本。

三、使用new Date().getTime()

long timestamp = new Date().getTime();

在早期版本的Java中,我們可以使用Date類來獲取當(dāng)前時(shí)間戳,調(diào)用getTime()方法可以獲得從UTC 1970年1月1日0時(shí)0分0秒到當(dāng)前時(shí)間的毫秒數(shù)。

使用Date類獲取時(shí)間戳的缺點(diǎn)是它已經(jīng)過時(shí),不建議使用,多線程環(huán)境下可能存在線程安全問題。

四、使用Calendar.getInstance().getTime().getTime()

long timestamp = Calendar.getInstance().getTime().getTime();

我們也可以使用Calendar類來獲取當(dāng)前時(shí)間戳,首先需要獲取一個實(shí)例,然后調(diào)用getTime()方法得到一個Date對象,再調(diào)用Date對象的getTime()方法即可獲得時(shí)間戳。

Calendar類獲取時(shí)間戳和Date類類似,同樣已經(jīng)過時(shí),也不建議使用。

五、通過java.sql.Timestamp獲取當(dāng)前時(shí)間戳

Timestamp timestamp = new Timestamp(System.currentTimeMillis());
long ts = timestamp.getTime();

Timestamp類也可以用來表示時(shí)間戳,它可以精確到納秒級別。我們可以創(chuàng)建一個Timestamp實(shí)例,傳入System.currentTimeMillis()方法的返回值作為參數(shù),然后調(diào)用getTime()方法即可得到時(shí)間戳。

使用Timestamp類獲取時(shí)間戳的缺點(diǎn)是代碼比較冗長,需要創(chuàng)建對象。

六、使用Joda-Time類庫獲取當(dāng)前時(shí)間戳

long timestamp = DateTime.now().getMillis() / 1000;

Joda-Time類庫是常用的Java時(shí)間和日期操作類庫,它提供了多種方式來獲取當(dāng)前時(shí)間戳。

我們可以使用DateTime類來表示當(dāng)前時(shí)間,調(diào)用getMillis()方法可以獲得從UTC 1970年1月1日0時(shí)0分0秒到當(dāng)前時(shí)間的毫秒數(shù),然后除以1000即可得到時(shí)間戳。

使用Joda-Time類庫獲取時(shí)間戳可以簡潔明了,而且可以精確到毫秒級別。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT