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类型