使用Java中的Date类和Calendar类来实现检查传入的Date类型时间距离当前服务器时间是否超过一天。具体实现如下:

import java.util.Calendar;
import java.util.Date;

public class DateChecker {
    public static boolean isExceedOneDay(Date date) {
        // 获取当前服务器时间
        Date currentDate = new Date();

        // 创建Calendar对象
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(currentDate);

        // 将当前服务器时间的日期部分设置为0时0分0秒
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);

        // 获取当前服务器时间的毫秒数
        long currentMillis = calendar.getTimeInMillis();

        // 将传入的日期设置为0时0分0秒
        calendar.setTime(date);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);

        // 获取传入的日期的毫秒数
        long dateMillis = calendar.getTimeInMillis();

        // 计算时间差
        long diffMillis = currentMillis - dateMillis;
        long diffDays = diffMillis / (24 * 60 * 60 * 1000); // 计算相差的天数

        // 判断时间差是否超过一天
        return diffDays > 1;
    }

    public static void main(String[] args) {
        // 测试
        Date date1 = new Date(); // 当前时间
        Date date2 = new Date(System.currentTimeMillis() - 24 * 60 * 60 * 1000); // 前一天的时间

        System.out.println(isExceedOneDay(date1)); // 输出false
        System.out.println(isExceedOneDay(date2)); // 输出true
    }
}

在上述代码中,我们首先获取当前服务器时间,并将其日期部分设置为0时0分0秒,然后获取传入的日期,并将其日期部分设置为0时0分0秒。接着,我们计算两个日期的毫秒数差,并将其转换为天数差,最后判断天数差是否超过一天。如果超过一天,则返回true,否则返回false。


原文地址: http://www.cveoy.top/t/topic/pL46 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录