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時間戳分別是怎么來的
經過百度得知,原來java的date默認精度是毫秒,也就是說生成的時間戳就是13位的,
而像c++或者php生成的時間戳默認就是10位的,因為其精度是秒。
問題2:13位時間戳如何轉換成10位時間戳
本來以為java中有設置可以修改其時間精度,后來在百度上沒有找到,就只能采用其它方法來轉化,這里提供兩種方式來轉換。
第一種:通過substring方法,將13位的時間戳最后三位數字截取
第二種:將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獲取當前時間時間戳內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Springboot使用redisson實現(xiàn)分布式鎖的代碼示例
在實際項目中,某些場景下可能需要使用到分布式鎖功能,那么實現(xiàn)分布式鎖有多種方式,常見的如mysql分布式鎖、zookeeper分布式鎖、redis分布式鎖,本文介紹springboot如何使用redisson實現(xiàn)分布式鎖,需要的朋友可以參考下2023-06-06
Idea跑的項目沒問題將程序install成jar包運行報錯空指針的問題
這篇文章主要介紹了Idea跑的項目沒問題,將程序install成jar包運行報錯空指針的問題,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
springboot使用@Validated或@Valid注解校驗參數方式
這篇文章主要介紹了springboot使用@Validated或@Valid注解校驗參數方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07
springboot對接支付寶支付接口(詳細開發(fā)步驟總結)
這篇文章主要介紹了springboot對接支付寶支付接口(詳細開發(fā)步驟總結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06

