时间格式化 几分钟前 几小时前 几天前

/**
 * 时间24小时显示格式化
 */
public class FormatDateUtils {

    /**
     //        一小时以内显示几分钟前;
     //        24小时内显示几小时前;
     //        超过24小时三天内(含三天)显示几天前;
     //        3天以上显示具体日期,到天即可。
     //        超过一年显示年份,年内不显示年份
     * @param
     * @return
     */
    public static String formatDate(String para){

        //现在的时间
        Integer nowYear =  Integer.parseInt(DateTime.now().toString("yyyy"));

        //时间格式化
        DateTimeFormatter format = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.S");

        //传进来的时间解析
        DateTime paraDate = DateTime.parse(para,format);//年月日 时分秒
        Integer paraYear = Integer.parseInt(paraDate.toString("yyyy"));//年
        String paraDay = paraDate.toString("yyyy-MM-dd");


        DateTime nowDate = new DateTime().now();   //当前
        Interval hours1 = new Interval(nowDate.minusHours(1), nowDate);
        Interval hours24 = new Interval(nowDate.minusHours(24), nowDate);
        Interval day = new Interval(nowDate.minusDays(4), nowDate);
        Interval years = new Interval(nowDate.minusYears(1), nowDate);


        if (hours1.contains(paraDate)) { //一小时以内显示几分钟前;
            Interval minute  = new  Interval(paraDate, nowDate);
            int res = minute.toPeriod().getMinutes();
            if(res == 0 || res == 1 ){
                return "刚刚";
            }
            return res+"分钟前";
           // return "几分钟前";
        } else if (hours24.contains(paraDate)) { //24小时内显示几小时前;
            Interval hours  = new  Interval(paraDate, nowDate);
            int res = hours.toPeriod().getHours();
            return res+"小时前";
            //return "几小时前";
        } else if (day.contains(paraDate)) { //超过24小时三天内(含三天)显示几天前;
            Interval Day  = new  Interval(paraDate, nowDate);
            int res = Day.toPeriod().getDays();
            return res+"天前";
        }else if(paraYear < nowYear ){
            return paraDay;
        }else {
            return paraDate.toString("MM-dd");
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值