根据传入时间/毫秒计算时间差工具类

根据传入时间/毫秒计算时间差工具类
时间间隔,如:1年前,2月前,3天前,4小时前


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

/**
 * @Description: 时间计算工具类
 * @Author: xzp
 * @Date: 2020/1/14 10:58 上午
 **/
public class TimeCalculationUtil {

    private static Logger logger = LoggerFactory.getLogger(TimeCalculationUtil.class);

    private static Long nowTime = System.currentTimeMillis();

    /*
     * @Description: 计算时间间隔(超过时间单位按照最大时间单位区分)
     * @Author: xzp
     * @Date: 2020/1/14 11:43 上午
     * @param: param 》dateTime:字符时间
     * @return: result:时间间隔,如:1年前,2月前,3天前,4小时前
     **/
    public static String DateTimeDifference(String dateTime) {
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date startDate = null;
        try {
            startDate = format.parse(dateTime);
        } catch (ParseException e) {
            logger.error("计算时间间隔类型转换失败");
        }
        return millisecond(startDate.getTime());
    }

    /*
     * @Description: 根据毫秒数计算时间间隔(超过时间单位按照最大时间单位区分)
     * @Author: xzp
     * @Date: 2020/1/14 11:43 上午
     * @param: param 》startTime:毫秒数
     * @return: result:时间间隔,如:1年前,2月前,3天前,4小时前
     **/
    public static String millisecond(long startTime){
        long endTime = nowTime;
        long timeDifference = endTime - startTime;
        long second = timeDifference / 1000;  //计算秒
        if(second < 60) {
            return second+"秒前";
        }else {
            long minute = second / 60;
            if(minute < 60) {
                return minute + "分钟前";
            }else {
                long hour = minute / 60;
                if(hour < 24) {
                    return hour + "时前";
                }else {
                    long day = hour / 24;
                    if(day < 30) {
                        return day + "天前";
                    }else {
                        long month = day / 30;
                        if(month < 12) {
                            return day + "月前";
                        }else {
                            long year = month / 12;
                            return year + "年前";
                        }
                    }
                }
            }
        }
    }

    public static void main(String[] args) {
        String time = "2020-01-14 00:00:00";
        System.err.println(DateTimeDifference(time));
    }

}

发布了76 篇原创文章 · 获赞 18 · 访问量 6万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览