java 时间类型比较

今天遇到一个问题,需要在固定的执行某段代码 但是呢 又不能写定时。就是在数据接口中 只有在固定的时间才存储数据。
就牵扯到事件类型的比较了。
因为也不经常用,就整理一下几种日期类型比较的方法。

1、用compareTo()方法:
public class methodTest {
     
	
	public static void main(String[] args) {
     
		dateCompare();
	}
	
	/**
	 * 测试时间比较方法
	 */
	public static void dateCompare(){
     
		String date1 = "09:39:27";
		String date2 = "11:40:22";
		
		DateUtil dateUtil = new DateUtil();
		Date strToDate1 = dateUtil.strToDate(date1, "HH:mm:ss");
		Date strToDate2 = dateUtil.strToDate(date2, "HH:mm:ss");
		
		
		System.out.println(strToDate1.compareTo(strToDate2));
	}

}

返回值 大于0 表示 strToDate1大于 strToDate2
返回值 小于0 表示 strToDate1小于 strToDate2
返回值 等于0 表示 strToDate1等于 strToDate2

那一段 DateUtil dateUtil = new DateUtil(); 是一个日期工具类 我之前发过 附上连接

日期时间转换的工具类:https://blog.csdn.net/qq_42684504/article/details/106096866

2、直接用Date自带方法before()和after()比较
public class methodTest {
     
	
	public static void main(String[] args) {
     
		dateCompare();
	}
	
	/**
	 * 测试时间比较方法
	 */
	public static void dateCompare(){
     
		String date1 = "09:39:27";
		String date2 = "11:40:22";
		
		DateUtil dateUtil = new DateUtil();
		Date strToDate1 = dateUtil.strToDate(date1, "HH:mm:ss");
		Date strToDate2 = dateUtil.strToDate(date2, "HH:mm:ss");
		
		
		System.out.println(strToDate1.before(strToDate2));
		System.out.println(strToDate1.after(strToDate2));
	}

}

返回的是Boolean类型

3、getTime()方法 date格式换成毫秒值 比较毫秒值大小
public class methodTest {
     
	
	public static void main(String[] args) {
     
		dateCompare();
	}
	
	/**
	 * 测试时间比较方法
	 */
	public static void dateCompare(){
     
		String date1 = "09:39:27";
		String date2 = "11:40:22";
		
		DateUtil dateUtil = new DateUtil();
		Date strToDate1 = dateUtil.strToDate(date1, "HH:mm:ss");
		Date strToDate2 = dateUtil.strToDate(date2, "HH:mm:ss");
		
		long time1 = strToDate1.getTime();
		long time2 = strToDate2.getTime();
		
		System.out.println(time1<time2);
	}

}

你可能感兴趣的:(java,java)