Java獲取當前時間的時間戳(13位和10位)
背景:項目中正好用到時間戳,但是自己手寫還記不住,索性就記錄下來吧,要不然總是百度,??
13位的時間戳的三種方式
long time1 = System.currentTimeMillis(); // long time2 = Calendar.getInstance().getTimeInMillis(); // long time3 = new Date().getTime();
運行完上述代碼,顯示如下;
time1: 1684398076253
time2: 1684398076253
time3: 1684398076253
10位的時間戳的三種方式
long time1 = System.currentTimeMillis() / 1000; // long time2 = Calendar.getInstance().getTimeInMillis() / 1000; // long time3 = new Date().getTime() / 1000;
運行完上述代碼,顯示如下;
time1: 1684398346
time2: 1684398346
time3: 1684398346
java時間戳 10位和13位分別是怎么來的?
最近遇到一個比較頭疼的問題。
語言是java,將當前時間(new Date())set進bean中,然后使用fastjson將bean轉換成json,存放在redis中。
但問題就來了,首先時間yyyy-mm-dd hh:mm:ss格式轉換成json會自動轉成時間戳,13位的,
而ios端只能解析10位的時間戳。
問題1:為什么會生成13位的時間戳,13位的時間戳和10時間戳分別是怎么來的
經(jīng)過百度得知,原來java的date默認精度是毫秒,也就是說生成的時間戳就是13位的,
而像c++或者php生成的時間戳默認就是10位的,因為其精度是秒。
問題2:13位時間戳如何轉換成10位時間戳
本來以為java中有設置可以修改其時間精度,后來在百度上沒有找到,就只能采用其它方法來轉化,這里提供兩種方式來轉換。
第一種:通過substring方法,將13位的時間戳最后三位數(shù)字截取
第二種:將13位時間戳除以1000取整。
ps:個人覺得這兩種方法好low,目前沒有更好的方法
另外提供一段時間戳轉時間的代碼:
/** * 時間戳轉時間(10位時間戳) * @param time * @return */ public static String timestampToDate(long time) { String dateTime; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); long timeLong = Long.valueOf(time); dateTime = simpleDateFormat.format(new Date(timeLong * 1000L)); return dateTime; }
到此這篇關于Java獲取當前時間的時間戳(13位和10位)的文章就介紹到這了,更多相關Java獲取當前時間時間戳內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot使用jasypt加解密密碼的實現(xiàn)方法(二)
這篇文章主要介紹了SpringBoot使用jasypt加解密密碼的實現(xiàn)方法(二),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10Java應用層協(xié)議WebSocket實現(xiàn)消息推送
后端向前端推送消息就需要長連接,首先想到的就是websocket,下面這篇文章主要給大家介紹了關于java后端+前端使用WebSocket實現(xiàn)消息推送的詳細流程,需要的朋友可以參考下2023-02-02SpringCloud網(wǎng)關(Zuul)如何給多個微服務之間傳遞共享參數(shù)
這篇文章主要介紹了SpringCloud網(wǎng)關(Zuul)如何給多個微服務之間傳遞共享參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03