Date 时间相关方法 Sucha

Administrator
发布于 2020-07-22 / 1123 阅读 / 0 评论 / 0 点赞

Date 时间相关方法 Sucha

Date 时间相关方法 Sucha

1、时间比较大小即先后顺序

(1)Date类型

方法一:

java.util.Date类实现了Comparable接口,可以直接调用Date的compareTo()方法来比较大小

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();
}
  • compareTo()方法的返回值,date1小于date2返回-1,date1大于date2返回1,相等返回0

方法二:
通过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();
}
  • before()或者after()方法的返回值为boolean类型

方法三:
通过调用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();
}

(2)LocalDateTime类型

通过LocalDateTime自带的isAfter()或者isBefore()方法比较,equals比较是否相等

public static void main(String[] args) {
        //获取当前时间
        LocalDateTime nowTime= LocalDateTime.now();
        //自定义时间
        LocalDateTime endTime = LocalDateTime.of(2017, 10, 22, 10, 10, 10);
        //比较  现在的时间 比 设定的时间 之前  返回的类型是Boolean类型
        System.out.println(nowTime.isAfter(endTime));
        //比较   现在的时间 比 设定的时间 之后  返回的类型是Boolean类型
        System.out.println(nowTime.isBefore(endTime));
        //比较   现在的时间 和 设定的时候  相等  返回类型是Boolean类型
        System.out.println(nowTime.equals(endTime));
    }
  • isBefore()或者isAfter()方法或者equals()方法的返回值为boolean类型

评论