Java中的Date类有哪些常用方法?如何执行日期比较?
Java中的Date类是用于处理日期和时间的类,提供了以下常用方法:
1. Date():无参数的构造方法,返回当前日期和时间。
2. Date(long date):参数为毫秒数的构造方法,返回从1970年1月1日 00:00:00 GMT 开始计算的指定日期。
3. getTime():返回从1970年1月1日 00:00:00 GMT 开始计算到当前Date对象表示的日期的毫秒数。
4. toString():将Date对象转换为字符串形式,默认格式为"EEE MMM dd HH:mm:ss zzz yyyy"。
5. equals(Object obj):判断当前Date对象与指定对象是否相等。
6. before(Date date):判断当前Date对象是否在指定日期之前。
7. after(Date date):判断当前Date对象是否在指定日期之后。
8. compareTo(Date date):比较当前Date对象和指定日期的先后顺序,返回0表示相等,正数表示当前Date对象在指定日期之后,负数表示当前Date对象在指定日期之前。
9. setTime(long time):将Date对象设置为指定毫秒数对应的日期。
10. setYear(int year):设置Date对象的年份。
11. setMonth(int month):设置Date对象的月份(0-11)。
12. setDate(int date):设置Date对象的日期(1-31)。
13. setHours(int hours):设置Date对象的小时数(0-23)。
14. setMinutes(int minutes):设置Date对象的分钟数(0-59)。
15. setSeconds(int seconds):设置Date对象的秒数(0-59)。
要执行日期比较,可以使用以下两种方式:
1. 使用before(Date date)和after(Date date)方法进行比较,根据返回的布尔值判断日期先后关系。例如:
Date date1 = new Date();
Date date2 = new Date(System.currentTimeMillis() + 1000); // 延迟1秒
if (date1.before(date2)) {
System.out.println("date1 在 date2 之前");
} else if (date1.after(date2)) {
System.out.println("date1 在 date2 之后");
} else {
System.out.println("date1 和 date2 相等");
}
2. 使用compareTo(Date date)方法进行比较,根据返回的整数值判断日期先后关系。例如:
Date date1 = new Date();
Date date2 = new Date(System.currentTimeMillis() + 1000); // 延迟1秒
int result = date1.compareTo(date2);
if (result < 0) {
System.out.println("date1 在 date2 之前");
} else if (result > 0) {
System.out.println("date1 在 date2 之后");
} else {
System.out.println("date1 和 date2 相等");
}
以上是Date类的常用方法和日期比较的方式。需要注意的是,Java中的Date类已被标记为过时(deprecated),推荐使用java.time包中的新日期-时间API,如LocalDate和LocalDateTime。
