前言
工作中遇到时间的比较问题,这里提供几种常用的date类型数据比较大小方式。
compareto()方法before()方法after()方法gettime()方法
1、compareto方法
/**
* 时间比较方法compareto
* 如果的d1比d2 大 结果=1
* 如果的d1比d2 等 结果=0
* 如果的d1比d2 小 结果=-1
*
* @param d1
* @param d2
*/
private void printresultcompareto(date d1,date d2){
if(d1.compareto(d2) == 1){
system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " 在 " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) + "之后");
}else if(d1.compareto(d2) == 0){
system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " = " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) );
}else{
system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " 在 " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) + "之前");
}
}2、before方法
/**
* 使用before方法比较
*
* @param d1
* @param d2
*/
private void printresultbefore(date d1,date d2){
if(d1.before(d2)){
system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " 在 " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) + "之前");
}else{
system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " 在 " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) + "之后");
}
}3、after方法
/**
* 使用after方法比较
*
* @param d1
* @param d2
*/
private void printresultafter(date d1,date d2){
if(d1.after(d2)){
system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " 在 " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) + "之后");
}else{
system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " 在 " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) + "之前");
}
}
4、gettime方法
/**
* 使用gettime方法取毫秒值比较
*
* @param d1
* @param d2
*/
private void printresultgettime(date d1,date d2){
if(d1.gettime() > d2.gettime()){
system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " 在 " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) + "之后");
}else if(d1.gettime() == d2.gettime()){
system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " = " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) );
}else{
system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " 在 " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) + "之前");
}
}测试代码
//定义一个date1string1字符串
private final string date1string1 = "2018-09-01 23:23:59";
//定义一个date1string2字符串
private final string date1string2 = "2020-04-20 23:23:59";
//定义一个date1string3字符串
private final string date1string3 = "2021-04-20 23:23:59";
//参数格式化类型
private final string yyyy_mm_dd_hh_mm_ss = "yyyy-mm-dd hh:mm:ss";
//定义date类型数据
private date date1;
private date date2;
private date date3;
@before
public void beforprint() throws parseexception {
date1 = new simpledateformat(yyyy_mm_dd_hh_mm_ss).parse(date1string1);
date2 = new simpledateformat(yyyy_mm_dd_hh_mm_ss).parse(date1string2);
date3 = new simpledateformat(yyyy_mm_dd_hh_mm_ss).parse(date1string3);
system.out.println("date1: " + date1string1);
system.out.println("date2: " + date1string2);
system.out.println("date3: " + date1string3);
}
/**
* 使用compareto比较
*/
@test
public void testcompare(){
system.out.println("--------------使用compareto比较-----------------");
printresultcompareto(date1, date2);
printresultcompareto(date3, date2);
system.out.println("--------------使用before方法比较-----------------");
printresultbefore(date1,date2);
printresultbefore(date3, date2);
system.out.println("--------------使用after方法比较-----------------");
printresultafter(date1, date2);
printresultafter(date3, date2);
system.out.println("--------------使用gettime方法比较-----------------");
printresultgettime(date1, date2);
printresultgettime(date3, date2);
}测试结果
如下:
date1: 2018-09-01 23:23:59
date2: 2020-04-20 23:23:59
date3: 2021-04-20 23:23:59
--------------使用compareto比较-----------------
2018-09-01 23:23:59 在 2020-04-20 23:23:59之前
2021-04-20 23:23:59 在 2020-04-20 23:23:59之后
--------------使用before方法比较-----------------
2018-09-01 23:23:59 在 2020-04-20 23:23:59之前
2021-04-20 23:23:59 在 2020-04-20 23:23:59之后
--------------使用after方法比较-----------------
2018-09-01 23:23:59 在 2020-04-20 23:23:59之前
2021-04-20 23:23:59 在 2020-04-20 23:23:59之后
--------------使用gettime方法比较-----------------
2018-09-01 23:23:59 在 2020-04-20 23:23:59之前
2021-04-20 23:23:59 在 2020-04-20 23:23:59之后
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论