在Android應用中,經常會碰到后台的時間是時間戳而現實的需要今天什么時候,昨天什么時候,就像微博的時間顯示一樣。現在我上一個把時間戳轉換的代碼:
1 public static String getTime(int timestamp) { 2 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 3 String time = null; 4 try { 5 java.util.Date currentdate = new java.util.Date();// 當前時間 6 7 long i = (currentdate.getTime() / 1000 - timestamp) / (60); 8 Timestamp now = new Timestamp(System.currentTimeMillis());// 獲取系統當前時間 9 String str = sdf.format(new Timestamp(IntToLong(timestamp))); 10 time = str.substring(11, 16); 11 String year = str.substring(0, 4); 12 String month = str.substring(5, 7); 13 String day = str.substring(8, 10); 14 System.out.println(str); 15 System.out.println(time); 16 System.out.println(getDate(year, month, day)); 17 time = getDate(year, month, day) + time; 18 } catch (Exception e) { 19 e.printStackTrace(); 20 } 21 return time; 22 } 23 24 // java Timestamp構造函數需傳入Long型 25 public static long IntToLong(int i) { 26 long result = (long) i; 27 result *= 1000; 28 return result; 29 } 30 31 public static String getDate(final String year, final String month, 32 final String day) { 33 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 24小時制 34 java.util.Date d = new java.util.Date(); 35 String str = sdf.format(d); 36 String nowmonth = str.substring(5, 7); 37 String nowday = str.substring(8, 10); 38 String result = null; 39 40 int temp = Integer.parseInt(nowday) - Integer.parseInt(day); 41 switch (temp) { 42 case 0: 43 result = "今天"; 44 break; 45 case 1: 46 result = "昨天"; 47 break; 48 case 2: 49 result = "前天"; 50 break; 51 default: 52 StringBuilder sb = new StringBuilder(); 53 sb.append(year).append("-"); 54 sb.append(month).append("-"); 55 sb.append(day).append(" "); 56 result = sb.toString(); 57 break; 58 } 59 return result; 60 }