java 日期时间差、日期时间减法、微信朋友圈发布日期计算 作者:马育民 • 2022-06-29 21:33 • 阅读:10191 # 案例 实现朋友圈时间功能,发布时间少于3分钟,显示 `刚刚发布` 发布时间少于1小时,显示 `n分钟前发布` 发布时间少于1天,显示 `n小时前发布` 发布时间少于2天,显示 `昨天发布` 发布时间少于3天,显示 `前天发布` 剩下显示 `月月-日日 发布` ``` 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); } } ``` 原文出处:http://malaoshi.top/show_1IX3aSojJUr6.html