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;
}
}
Android时间比较,输出对应格式
最新推荐文章于 2024-07-08 03:07:04 发布
本文介绍了一个实用的Java工具类,用于处理日期时间的格式化、字符串转换及时间比较。提供了多种日期格式,并实现了时间差的计算和人性化的时间表达方式,如“刚刚”、“**分钟前”等。
679

被折叠的 条评论
为什么被折叠?



