84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
如题,根据时间戳怎么判断是不是昨天呢?
业精于勤,荒于嬉;行成于思,毁于随。
JDK 内置方式
public static boolean isYesterday(long timestamp) { Calendar c = Calendar.getInstance(); clearCalendar(c, Calendar.HOUR_OF_DAY, Calendar.MINUTE, Calendar.SECOND, Calendar.MILLISECOND); c.add(Calendar.DAY_OF_MONTH, -1); long firstOfDay = c.getTimeInMillis(); // 昨天最早时间 c.setTimeInMillis(timestamp); clearCalendar(c, Calendar.HOUR_OF_DAY, Calendar.MINUTE, Calendar.SECOND, Calendar.MILLISECOND); // 指定时间戳当天最早时间 return firstOfDay == c.getTimeInMillis(); } private static void clearCalendar(Calendar c, int... fields) { for (int f : fields) { c.set(f, 0); } }
( ( timestamp - System.currentTimeMillis() ) / (3600 * 24) ) == -1
public boolean isYesterday(long time) { boolean isYesterday = false; Date date; try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); date = sdf.parse(sdf.format(new Date())); if (time < date.getTime() && time > (date.getTime() - 24*60*60*1000)) { isYesterday = true; } } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return isYesterday; }
JDK 内置方式