java中的Date怎么比较日期?

如题所述

在java的程序里比较date类型的方法如下:

1、java.util.Date类实现了Comparable接口,可以直接调用Date的compareTo()方法来比较大小,compareTo()方法的返回值,date1小于date2返回-1,date1大于date2返回1,相等返回0如下。

String beginTime = "2018-07-28 14:42:32";

String endTime = "2018-07-29 12:26:32";

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try {

Date date1 = format.parse(beginTime);

Date date2 = format.parse(endTime);

int compareTo = date1.compareTo(date2);

System.out.println(compareTo);

} catch (ParseException e) {

e.printStackTrace();

}

2、通过Date自带的before()或者after()方法比较,如下。

String beginTime = "2018-07-28 14:42:32";

String endTime = "2018-07-29 12:26:32";

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try {

Date date1 = format.parse(beginTime);

Date date2 = format.parse(endTime);

boolean before = date1.before(date2);

System.out.println(before);

} catch (ParseException e) {

e.printStackTrace();

}

3、通过调用Date的getTime()方法获取到毫秒数来进行比较,如下。

String beginTime = "2018-07-28 14:42:32";

String endTime = "2018-07-29 12:26:32";

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try {

Date date1 = format.parse(beginTime);

Date date2 = format.parse(endTime);

long beginMillisecond = date1.getTime();

long endMillisecond = date2.getTime();

System.out.println(beginMillisecond > endMillisecond);

} catch (ParseException e) {

e.printStackTrace();

}

扩展资料:

1、Java编程技巧之一,return 一个空的集合,而不是 null。如果一个程序返回一个没有任何值的集合,请确保一个空集合返回,而不是空元素。这样你就不用去写一大堆 ”if else” 判断null元素。

2、Java编程技巧之二,小心使用 String。因为字符串相加或者拼接的方式都会在对象池中查找字符串是否存在,如果不存在则创建,这样在拼接的过程中会产生大量中间过程的字符串,占用内存资源。

3、Java编程技巧之三,StringBuilder效率优于StringBuffer,但是StringBuffer线程安全。

参考资料来源:ImportNew-Java 8简明教程

温馨提示:答案为网友推荐,仅供参考