Android时间比较,输出对应格式

import android.util.Log;

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

/**
 * Created by lu on 2019/10/26.
 */

public class TimeFormatUtil {

    public static final String DATE_FMT_1 = "HH:mm";
    public static final String DATE_FMT_2 = "YYYY年MM月";
    //    public static final String DATE_FMT_3 = "YYYY-MM-dd HH:mm";
    public static final String DATE_FMT_4 = "yyyy";
    public static final String DATE_FMT_5 = "yyyyMMdd";

    public static final String DATE_FMT_6 = "YYYY/YYYYMMdd";
    public static final String DATE_FMT_7 = "yyyy-MM-dd HH:mm:ss";

    /**
     * 日期转为字串
     */
    public static String getStrFromDate(Date date, String pattern) {
        DateFormat df = new SimpleDateFormat(pattern);
        String s = df.format(date);
        return s;
    }

    public static String getStrFromDate(long time, String pattern) {
        Date date = new Date(time);
        DateFormat df = new SimpleDateFormat(pattern);
        String s = df.format(date);
        return s;
    }

    public static final long SECOND = 1000;
    public static final long MINUTE = SECOND * 60;
    public static final long HOURS = MINUTE * 60;
    public static final long DAY = HOURS * 24;

    /**
     * 比较2个时间大小
     * yyyy-MM-dd HH:mm 格式(自己可以修改成想要的时间格式)
     * @param startTime
     * @return 输出字符串格式
     * 10分钟以内:刚刚
     * 1小时以内:**分钟前
     * 24小时以内:**小时前
     * 8天以内(192小时以内):*天前
     * 8天以上(192小时以上):显示日期 2019年12月20日
     */
    public static String timeCompare(String startTime, String sysTime) {
        String i = "";
        if (sysTime.equals("")) { //防止未初始化 时间
            return startTime;
        }
        sysTime = getStrFromDate(Long.valueOf(sysTime), DATE_FMT_7);
        //注意:传过来的时间格式必须要和这里填入的时间格式相同
        SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FMT_7);
        try {
            Date date1 = dateFormat.parse(startTime);//开始时间
            Date date2 = dateFormat.parse(sysTime);//结束时间
            // 1 结束时间小于开始时间 2 开始时间与结束时间相同 3 结束时间大于开始时间
//            if (date2.getTime() < date1.getTime()) {
//                //结束时间小于开始时间
//                i = ;
//            }
            if (date2.getTime() > date1.getTime()) {
                //结束时间大于开始时间
                i = "";
            }
            i = ((date2.getTime() - date1.getTime()) / (24 * 60 * 60 * 1000)) + "";
            if (((date2.getTime() - date1.getTime()) / (24 * 60 * 60 * 1000)) >= 8) {
                return startTime;
            } else if (1 <= ((date2.getTime() - date1.getTime()) / (24 * 60 * 60 * 1000)) &&
                    ((date2.getTime() - date1.getTime()) / (24 * 60 * 60 * 1000)) < 8) {
                i = String.valueOf(((date2.getTime() - date1.getTime()) / (24 * 60 * 60 * 1000)));
                return i + "天前";
            } else if (((date2.getTime() - date1.getTime()) / (24 * 60 * 60 * 1000)) < 1) {
                if (((date2.getTime() - date1.getTime()) / (60 * 1000)) < 60) {
                    i = (date2.getTime() - date1.getTime()) + "";
//                    Log.e("e", i);
                    if (((date2.getTime() - date1.getTime()) / (60 * 1000)) < 10) {
                        return "刚刚";
                    } else {
                        i = String.valueOf((date2.getTime() - date1.getTime()) / (60 * 1000));
                        return i + "分钟前";
                    }
                } else {
                    return ((date2.getTime() - date1.getTime()) / (60 * 60 * 1000)) + "小时前";
                }
            }
        } catch (Exception e) {
            Log.e("e", e.toString());
        }
        return startTime;
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值