国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java中時(shí)間戳的獲取和轉(zhuǎn)換的示例分析

瀏覽:68日期:2022-08-28 09:54:52

日期時(shí)間是Java一個(gè)重要的數(shù)據(jù)類(lèi)型,常見(jiàn)的日期時(shí)間格式通常為“yyyy-MM-dd HH:mm:ss”,但是計(jì)算機(jī)中存儲(chǔ)的日期時(shí)間并非字符串形式,而是長(zhǎng)整型的時(shí)間戳。因?yàn)樽址终加每臻g又難以運(yùn)算,相比之下,長(zhǎng)整型只占用四個(gè)字節(jié),普通的加減乘除運(yùn)算更是不在話(huà)下,所以時(shí)間戳是最佳的日期時(shí)間存儲(chǔ)方案。獲取時(shí)間戳的代碼很簡(jiǎn)單,只需調(diào)用System類(lèi)的currentTimeMillis方法即可,如下所示:

// 從System類(lèi)獲取當(dāng)前的時(shí)間戳long timeFromSystem = System.currentTimeMillis();System.out.println('timeFromSystem='+timeFromSystem);

眾所周知,時(shí)間戳以毫秒為單位,為了求得它的計(jì)時(shí)起點(diǎn),可以將其轉(zhuǎn)換時(shí)間單位,先把毫秒的數(shù)量轉(zhuǎn)成秒的數(shù)量,再把秒的數(shù)量轉(zhuǎn)成分鐘的數(shù)量,再把分鐘的數(shù)量轉(zhuǎn)成小時(shí)的數(shù)量,再把小時(shí)的數(shù)量轉(zhuǎn)成天的數(shù)量,最后把天的數(shù)量轉(zhuǎn)成年的數(shù)量。不過(guò)每年的天數(shù)不固定,像平年有365天,閏年有366天,按照四年一閏,平均每年的天數(shù)=(365+365+365+366)/4=365.25。于是把時(shí)間戳轉(zhuǎn)為年份數(shù)量的代碼就成了下面這樣:

int years = (int) (timeFromSystem/1000/60/60/24/365.25);System.out.println('years='+years);

運(yùn)行上述轉(zhuǎn)換代碼,可見(jiàn)如下的輸出日志:

timeFromSystem=1595578123444years=50

由于當(dāng)前年份是2020,從2020往前倒推50年,正好是1970年,原來(lái)時(shí)間戳是從1970年開(kāi)始累加的呀。通過(guò)System類(lèi)只是獲取時(shí)間戳的第一種方式,正如茴香豆的茴有四種寫(xiě)法那樣,時(shí)間戳也有四種獲取方式,除了之前提到的System類(lèi),還有下列三種時(shí)間戳獲取方式:

1、從Date實(shí)例獲取時(shí)間戳

調(diào)用Date實(shí)例的getTime方法即可獲得對(duì)應(yīng)的時(shí)間戳,獲取代碼示例如下:

// 從日期實(shí)例獲取對(duì)應(yīng)的時(shí)間戳long timeFromDate = new Date().getTime();System.out.println('timeFromDate='+timeFromDate);

2、從Calendar實(shí)例獲取時(shí)間戳

調(diào)用Calendar實(shí)例的getTimeInMillis方法即可獲得對(duì)應(yīng)的時(shí)間戳,獲取代碼示例如下:

// 從日歷實(shí)例獲取對(duì)應(yīng)的時(shí)間戳long timeFromCalendar = Calendar.getInstance().getTimeInMillis();System.out.println('timeFromCalendar='+timeFromCalendar);

3、從LocalDateTime實(shí)例獲取時(shí)間戳

從LocalDateTime獲取時(shí)間戳稍微麻煩些,得先把LocalDateTime實(shí)例轉(zhuǎn)為Instant實(shí)例,再調(diào)用Instant實(shí)例的toEpochMilli方法獲得對(duì)應(yīng)的時(shí)間戳,獲取代碼示例如下:

// 從本地日期時(shí)間實(shí)例獲取對(duì)應(yīng)的時(shí)間戳LocalDateTime localDateTime = LocalDateTime.now();Instant instant1 = localDateTime.toInstant(ZoneOffset.ofHours(8));long timeFromLocal1 = instant1.toEpochMilli();System.out.println('timeFromLocal1='+timeFromLocal1);

上面獲取代碼基于北京時(shí)間,所以轉(zhuǎn)為Instant實(shí)例時(shí)使用了東八區(qū),倘若在東八區(qū)以外的其他地區(qū)運(yùn)行上述代碼,就無(wú)法得到正確的當(dāng)?shù)貢r(shí)間戳,此時(shí)要先設(shè)置當(dāng)?shù)氐哪J(rèn)時(shí)區(qū),再將LocalDateTime實(shí)例轉(zhuǎn)為Instant實(shí)例,獲取代碼示例如下:

Instant instant2 = localDateTime.atZone(ZoneId.systemDefault()).toInstant();long timeFromLocal2 = instant1.toEpochMilli();System.out.println('timeFromLocal2='+timeFromLocal2);

盡管時(shí)間戳的獲取方式多達(dá)四種,然而最高效的還是第一種System方式,它不但代碼最簡(jiǎn)潔,時(shí)間消耗也最小。

有了時(shí)間戳之后,還能將它轉(zhuǎn)換為對(duì)應(yīng)的日期、日歷和本地日期時(shí)間。轉(zhuǎn)換過(guò)程說(shuō)明如下:1、把時(shí)間戳轉(zhuǎn)換為Date類(lèi)型,調(diào)用Date實(shí)例的setTime方法即可。2、把時(shí)間戳轉(zhuǎn)換為Calendar類(lèi)型,調(diào)用Calendar實(shí)例的setTimeInMillis方法即可。3、把時(shí)間戳轉(zhuǎn)換為L(zhǎng)ocalDateTime類(lèi)型,先調(diào)用Instant類(lèi)的ofEpochMilli方法,把時(shí)間戳轉(zhuǎn)成Instant實(shí)例;再調(diào)用LocalDateTime類(lèi)的ofInstant方法,把Instant實(shí)例轉(zhuǎn)成LocalDateTime實(shí)例。下面是把時(shí)間戳轉(zhuǎn)為日期、日歷和本地日期時(shí)間的代碼例子:

// 從System類(lèi)獲取當(dāng)前的時(shí)間戳long timestamp = System.currentTimeMillis();// 下面把時(shí)間戳轉(zhuǎn)換為日期實(shí)例Date date = new Date();date.setTime(timestamp);// 下面把時(shí)間戳轉(zhuǎn)換為日歷實(shí)例Calendar calendar = Calendar.getInstance();calendar.setTimeInMillis(timestamp);// 下面把時(shí)間戳轉(zhuǎn)換為本地日期時(shí)間實(shí)例Instant instant = Instant.ofEpochMilli(timestamp);LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());

到此這篇關(guān)于Java中時(shí)間戳的獲取和轉(zhuǎn)換的示例分析的文章就介紹到這了,更多相關(guān)Java 時(shí)間戳 獲取轉(zhuǎn)換內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 亚洲丝袜另类 | 亚洲日韩精品欧美一区二区 | 亚洲欧美日韩一级特黄在线 | 亚洲美女免费视频 | 国产高清三级 | 国产在线视频网址 | 精品国产日韩久久亚洲 | 亚洲精品国产一区二区在线 | 精品久久久久久免费影院 | 热热涩热热狠狠色香蕉综合 | 国产精品日韩欧美在线第3页 | 欧美丰满大乳大屁股毛片 | 亚洲国产精品国产自在在线 | 色综合美国色农夫网 | 国产美女一区精品福利视频 | 成年人免费毛片 | 欧美一区二区在线播放 | 国产精品色午夜视频免费看 | 国产大臿蕉香蕉大视频女 | 精品久久久久不卡无毒 | 亚洲字幕 | 久久受www免费人成看片 | 欧美精品一区二区三区免费观看 | 久久久久9999 | 国产亚洲精品精品国产亚洲综合 | 欧美精品网址 | 久草com| 成人欧美在线视频 | 手机在线观看毛片 | 亚洲国产观看 | 国产三级精品三级国产 | 国产欧美日韩中文久久 | 亚洲性色视频 | 波多野结衣一级视频 | 伊人色综合久久成人 | 欧美日韩国产综合一区二区三区 | 国产成人免费不卡在线观看 | 久久成人18免费 | 嫩模大尺度人体福利视频 | 国产精品久久久久久久专区 | 欧美xxxx色视频在线观看 |