java 日期时间差、日期时间减法、微信朋友圈发布日期计算

package day16;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class S2朋友圈发布日期计算 {
    /**
     * 获取当前时间
     * 与传入时间做相减计算
     * 算时间差,
     *      如果小于3分钟,显示刚刚
     *      小于1小时,显示 n分钟前发布
     *      大于1天,就显示 n小时前发布
     *      昨天发布,就显示 昨天发布
     *      前天发布,就显示 前天发布
     *      3天前,就显示3天前发布
     *      不满足上面条件,就显示 月-日 时:分
     * @throws ParseException 
     */
    public static String getDateTimeInterval(String datetime) throws ParseException{
        String ret = "";
        Date date = new Date();

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date2 = sdf.parse(datetime);

        // 此处学习阶段,精度不要那么高,所以直接取整数,但是会有误差
        long interval = (date.getTime() - date2.getTime())/1000;


        if(  interval/60 < 3 ){ // 除以60,换算成分钟,如果小于3分钟,就显示刚刚
            ret = "刚刚发布";
        }else if(interval/60 < 59){ // 低于1小时,就显示 n分钟前
            ret = (interval/60)+ "分前发布";
        }else if(interval/60/60 < 24){ // 低于1天,就显示 n小时前
            ret = (interval/60/60)+ "小时前发布";
        }else if(interval/60/60/24 ==1){ // 昨天发布
            ret = "昨天发布";
        }else if(interval/60/60/24 ==2){ // 前天发布
            ret = "前天发布";
        }else if(interval/60/60/24 ==3){ // 3天前发布
            ret = "3天前发布";
        }else{// 显示月-日 时:分
            SimpleDateFormat sdf2 = new SimpleDateFormat("MM-dd HH:mm");
            ret = sdf2.format(date2);
        }

        return ret;
    }

    public static void main(String[] args) throws ParseException {

        String res = getDateTimeInterval("2022-06-25 19:36:00");
        System.out.println(res);

    }
}

原文出处:https://malaoshi.top/show_1IX3aSojJUr6.html