總結一下java時間戳和Android 微博時間戳 的轉換問題:
因爲精度不一樣,致使長度不一致,直接轉換錯誤。
JAVA時間戳長度是13位,如:1294890876859
PHP時間戳長度是10位, 如:1294890859
主要最後三位的不一樣,JAVA時間戳在PHP中使用,去掉後三位,如:1294890876859-> 1294890876 結果:2011-01-13 11:54:36 java
Android 微博時間戳在JAVA中使用,最後加三位,用000補充,如:1294890859->1294890859000
結果:2011-01-13 11:54:19 spa
@SuppressWarnings("deprecation")
public static String getDistanceTime(long time2) {
Date now = new Date();
long day = 0;//天數
long hour = 0;//小時
long min = 0;//分鐘
long sec = 0;//秒
try {
long time1 = now.getTime();
time2 = time2*1000l;
long diff ;
if(time1<time2) {
diff = time2 - time1;
} else {
diff = time1 - time2;
}
day = diff / (24 * 60 * 60 * 1000);
hour = (diff / (60 * 60 * 1000));
min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
sec = (diff/1000-day*24*60*60-hour*60*60-min*60);
} catch (Exception e) {
e.printStackTrace();
}
String rs="";
if (hour==0) {
rs=min+"分鐘前";
return rs;
}
if (day==0&&hour<=4) {
rs=hour+"小時前";
return rs;
}
SimpleDateFormat format = new SimpleDateFormat( "MM-dd HH:mm" );//
String d = format.format(time2);
Date date = null;
try {
date = format.parse(d);//把字符類型的轉換成日期類型的!
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if (now.getDate()-date.getDate()==0) {//當前時間和時間戳轉換來的時間的天數對比
DateFormat df2 = new SimpleDateFormat("HH:mm");
rs="今天 "+df2.format(time2);
return rs;
} else if (now.getDate()-date.getDate()==1) {
DateFormat df2 = new SimpleDateFormat("HH:mm");
rs="昨天 "+df2.format(time2);
return rs;
} else {
DateFormat df2 = new SimpleDateFormat("MM-dd HH:mm");
rs=df2.format(time2);
return rs;
}
} orm