java获取时间戳(计算两个时间相差几天几小时几秒,获取当前日期是周几。。。)

时间:2025-03-10 08:42:26

java时间相关

博主所有博客都是验证过的
获取一个时间的时间戳

 //获取当前时间戳
        Calendar cal1 = Calendar.getInstance();
        cal1.setTime(new Date());
        long timestamp1 = cal1.getTimeInMillis();

计算两个时间相差几天几小时几秒

//计算两个时间相差几天几小时几秒
    public static String getTimeDiff(String date) {
        if (ObjectUtils.isEmpty(date)) {
            return "";
        }
        StringBuilder sb = new StringBuilder();
        try {
            SimpleDateFormat mDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date parse = mDateFormat.parse(date);
            Date now = new Date();
            // 这样得到的差值是微秒级别
            long diff = parse.getTime() - now.getTime();
            // 只能精确到日 无法具细到年 月 不能确定一个月具体多少天 不能确定一年具体多少天
            // 获取日
            long day = diff / (1000 * 60 * 60 * 24);
            diff = diff % (1000 * 60 * 60 * 24);
            if (day > 0) {
                sb.append(day).append("天");
            }
            // 获取时
            long hour = diff / (1000 * 60 * 60);
            diff = diff % (1000 * 60 * 60);
            if (hour > 0) {
                sb.append(hour).append("时");
            }
            // 获取分
            long min = diff / (1000 * 60);
            diff = diff % (1000 * 60);
            if (min > 0) {
                sb.append(min).append("分");
            }
            // 获取秒
            long sec = diff / 1000;
            if (sec > 0) {
                sb.append(sec).append("秒");
            }
            return sb.toString();
        } catch (ParseException e) {
            return "";
        }
    }

获取一个日期是周几

 //获取当前时间是周几
    private static int getWeek() {
        Integer week =0;
        Date today = new Date();
        Calendar c = Calendar.getInstance();
        c.setTime(today);//当前设置的是系统时间,你可以自定义时间
        int weekday = c.get(Calendar.DAY_OF_WEEK);
        if (weekday == 1) {
            week = 7;
        } else if (weekday == 2) {
            week = 1;
        } else if (weekday == 3) {
            week = 2;
        } else if (weekday == 4) {
            week = 3;
        } else if (weekday == 5) {
            week = 4;
        } else if (weekday == 6) {
            week = 5;
        } else if (weekday == 7) {
            week = 6;
        }
        return week;
    }

获取当前时间的周五的时间

 //获取当前日期的周五的时间
    private static Date getDateByType1(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        // 获得当前日期是一个星期的第几天
        int dayOfWeek = Calendar.DAY_OF_WEEK;
        System.out.println(dayOfWeek);
        int dayWeek = calendar.get(Calendar.DAY_OF_WEEK);
        if (1 == dayWeek) {
            calendar.add(Calendar.DAY_OF_MONTH, -1);
        }
        // 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
        calendar.setFirstDayOfWeek(Calendar.MONDAY);
        // 获得当前日期是一个星期的第几天
        int day = calendar.get(Calendar.DAY_OF_WEEK);
        int first = calendar.getFirstDayOfWeek();
        // 计算周五的日期
        calendar.add(Calendar.DAY_OF_WEEK, first - day + 4);
        return calendar.getTime();
    }