在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 }