DateUtils.before(date, date2) /*比较时间戳*/ DateUtils.after(System.currentTimeMillis(), 121321324548L) /*使用时间字符串比较*/ DateUtils.after("2018-08-22 10:13", "2018-09-01 10:13") /*还可以指定格式*/ DateUtils.after("2018-08-22 10:13", "2018-09-01 10:13", "yyyy-MM-dd HH:mm:ss")

还可以比较多个时间大小

        /*获取最大的时间*/
        DateUtils.compareAfter(date, date2, date3, date4)
        /*获取最小的时间*/
        DateUtils.compareBefore(date, date2, date3, date4)

date可以为Date、Long、String

二、格式化时间-(两种方式)

1、使用自带的SimpleDateFormat

        /*格式化为Date*/
        val resultDate = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).parse("2018-08-22 10:13")
        /*格式化为Long*/
        val resultLong=SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).parse("2018-08-22 10:13").time
        /*格式化为String*/
        val resultString=SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).format(date)

2、使用工具类( 推荐

        /*格式化为时间*/
        DateUtils.formatToDate(System.currentTimeMillis())
        /*也可以指定格式*/
        DateUtils.formatToDate("2018-08-22 10:13", "yyyy-MM-dd HH:mm:ss")
        /*可以输出为多种格式*/
        DateUtils.formatToLong(date)
        DateUtils.formatToLong("2018-08-22 10:13")
        DateUtils.formatToLong("2018-08-22 10:13", "yyyy-MM-dd HH:mm:ss")
        DateUtils.formatToStr(date,"yyyy-MM-dd HH:mm:ss")
        DateUtils.formatToStr(System.currentTimeMillis())

三、格式化两个时间大小差值

将两个时间戳相减,得到之间的差值,得到差值,再进行格式化。

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;
* 格式化时间差 * @param timestamp * @param postfix 前缀 * @param postfix 后缀 fun formatDateDifference(timestamp: Long, prefix: String, postfix: String): String { val day = timestamp / DateUtils.DAY val hour = (timestamp - DateUtils.DAY * day) / DateUtils.HOURS val minute = (timestamp - DateUtils.DAY * day - DateUtils.HOURS * hour) / DateUtils.MINUTE val second = (timestamp - DateUtils.DAY * day - DateUtils.HOURS * hour - DateUtils.MINUTE * minute) / DateUtils.SECOND return when { day > 0 -> String.format("$prefix%s天%s时%s分%s秒$postfix", day, hour, minute, second) hour > 0 -> String.format("$prefix%s时%s分%s秒$postfix", hour, minute, second) minute > 0 -> String.format("$prefix%s分%s秒$postfix", minute, second) else -> String.format("$prefix%s秒$postfix", second)
formatDateDifference(date.time - date2.time, "还有:", "就可以采摘啦")

四、格式化秒表

        /*50毫秒*/
        Log2.e(DateUtils.formatDateStopwatch(DateUtils.MILLISECOND * 50))
        /*1天零2小时*/
        Log2.e(DateUtils.formatDateStopwatch(DateUtils.DAY * 1 + DateUtils.HOURS * 2))
        Log2.e(DateUtils.formatDateStopwatch(DateUtils.SECOND * 179 + DateUtils.MINUTE * 1 + DateUtils.MILLISECOND * 10))
        Log2.e(DateUtils.formatDateStopwatch((DateUtils.SECOND * 1.5).toLong()))
00:00,050
01 02:00:00,000
03:59,010
00:01,500
* 格式化秒表 * 有天的 02 11:11:12,534 * 有时的 11:11:12,534 * 有分的 11:12,534 * 有秒的 11:12,534 * 有毫秒 11:12,534 * @param timestamp 单位毫秒 fun formatDateStopwatch(timestamp: Long): String { return if (timestamp > 0) { val day = timestamp / DateUtils.DAY val hours = (timestamp - DateUtils.DAY * day) / DateUtils.HOURS val minute = (timestamp - DateUtils.DAY * day - DateUtils.HOURS * hours) / DateUtils.MINUTE val second = (timestamp - DateUtils.DAY * day - DateUtils.HOURS * hours - DateUtils.MINUTE * minute) / DateUtils.SECOND val millisecond = (timestamp - DateUtils.DAY * day - DateUtils.HOURS * hours - DateUtils.MINUTE * minute - DateUtils.SECOND * second) / DateUtils.MILLISECOND val tempDay=if (day in 0..9) "0$day" else day.toString() val tempHours=if (hours in 0..9) "0$hours" else hours.toString() val tempMinute=if (minute in 0..9) "0$minute" else minute.toString() val tempSecond=if (second in 0..9) "0$second" else second.toString() val tempMillisecond=if (millisecond in 0..9) "0$millisecond" else millisecond.toString() return when { day > 0 -> String.format("%s %s:%s:%s,%s", tempDay, tempHours, tempMinute, tempSecond, tempMillisecond) hours > 0 -> String.format("%s:%s:%s,%s", tempHours, tempMinute, tempSecond, tempMillisecond) minute > 0 -> String.format("%s:%s,%s", tempMinute, tempSecond, tempMillisecond) second > 0 -> String.format("%s:%s,%s", tempMinute, tempSecond, tempMillisecond) minute > 0 -> String.format("%s:%s,%s", tempMinute, tempSecond, tempMillisecond) else -> "00:00,00" } else "00:00,00"

工具类源码: 查看源码

一、比较时间的大小-三种方式:1、获取时间戳比较timestamp1 &amp;gt; timestamp22、转换为Date比较val date=Date()val date2=时间2date.after(date2)3、使用工具类(推荐)val date = Date()val date2 = Date()/*date&amp;gt;date2*/DateUtils.a... public static int getTimeCompareSize(String startTime, String endTime){ int i=0; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");//年-月-日 时-分 try { Date date1 = dateFormat.parse(startTime);//开始 时间 Date date2 = dateFormat.parse(endTime);//结束 时间 // 1 结束 时间 小于开始 时间 2 开始 时间 与结束 时间 相同 3 结束 时间 大于开始 时间 if (date2.getTime()<date1.getTime()){ i= 1; }else if (date2.getTime()==date1.getTime()){ i= 2; }else if (date2.getTime()>date1.getTime()){ //正常情况下的逻辑操作. i= 3; } catch (ParseException e) { e.printStackTrace(); return i;
最近需要增加让APP在特定的 时间 (比如2017.12.20)之后不能正常使用,所以我们需要获取到系统的 时间 或者是从服务器上获取 时间 进行 比较 大小 ,从而来实现此功能。 1.用相同的字符串类型进行 比较 ,我们自己一开始肯定是定义String类型比如 String n = " 2017.12.20",而我们获取到的系统 时间 字符串,它和我们正常定义的字符串类型是不一样的不能直接进行 比较 ,所以在这里我是将字符串类型转换成了 时间 字符串的类型后,进行 时间 的前后 比较 ;(PS相关的 时间 与字符串 比较 大小 ,以及他们之间的转换我在此
//计算 时间差 int daynumber = dateDiff(startDate, endDate, "yyyy-MM-dd"); //计算 时间 大小 int retuencode=compare_date(data1,data2); // 两个 日期相差几天 public long dateDiff(String startTime, S...
String beginTime=new String("2017-06-09 10:22:22");     String endTime=new String("2017-05-08 11:22:22");  1  直接用Date自带方法before()和after() 比较 SimpleDateForma // 获取服务器返回的 时间 戳 转换成"yyyy-MM-dd HH:mm:ss" // 计算结束 时间 - 开始 时间 时间差 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");//格式 try { Date date=format.parse(String str);//第一个日期(字符串) Date date1=format.parse(String str1);//第二个日期(字符串) DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(System.currentTimeMillis());//获取当前 时间 String currentDate = simpleDateFormat.format(date); Log.d("test",currentDate); Log.d("test"," Result:"+timeCompare( public class TimeDifference { public static void main(String[] args) { String startTime = "2022-01-01 00:00:00"; String endTime = "2022-01-02 12:30:30"; long between = DateUtil.between(DateUtil.parse(startTime), DateUtil.parse(endTime), DateUnit.SECOND); String time = DateUtil.formatBetween(between * 1000, BetweenFormater.Level.SECOND); System.out.println(" 两个 时间 差值 为:" + time); 运行结果为: 两个 时间 差值 为:1天12小时30分30秒 其中,startTime和endTime表示 两个 时间 的字符串格式,通过DateUtil.parse方法将其转换为Date类型,