Java如何判断一个时间戳是否是昨天?

如题,根据时间戳怎么判断是不是昨天呢?

阅读 9.9k
3 个回答

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;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题