首先先明白一点: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);