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