使用java將mysql中獲得的時間戳轉標準時間格式
阿新 • • 發佈:2019-01-07
首先先明白一點:mysql中存入的時間戳是10位的int
在存入的時候我們做過如下操作:
Date date = new Date(); //獲得當前時間
long lTime = date.getTime(); //取出date型別中的日期時間,這裡精確到毫秒的
String sDateTime=lTime+""; 將long轉string
sDateTime=sDateTime.substring(0,10); //只取前10位
int iCurrentTime=Integer.parseInt(sDateTime); //string轉int
同理當我們將時間戳從mysql中取出來的時候要*1000或者加三個0把10位的int補成13位的long,否則格式化時間時是會出錯的,原因可以參見時間的計算原理(時間戳表示的是從1970-01-01開始經過的毫秒數,你存入資料庫時除了1000,取出來要把1000補上去,不然你的時間間隔會少1000,計算得到的時間是1970+(正確時間-1970)/1000).
所以我們要這麼做:
String sTime=item.getUpdateTime()+"000"; //把0換回去
long lTime = Long.parseLong(sTime); //int放不下的,用long
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sLastTime=sdf.format(lTime);