如題,根據(jù)時間戳怎么判斷是不是昨天呢?
業(yè)精于勤,荒于嬉;行成于思,毀于隨。
JDK 內(nèi)置方式
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); // 指定時間戳當(dāng)天最早時間
return firstOfDay == c.getTimeInMillis();
}
private static void clearCalendar(Calendar c, int... fields) {
for (int f : fields) {
c.set(f, 0);
}
}
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;
}