java比较两个时间的大小不比交日期(java获取当前系统时间)
程序员文章站
2022-06-28 20:29:13
1. date.compareto()java.util.date提供了在java中比较两个日期的经典方法compareto()。如果两个日期相等,则返回值为0。如果date在date参数之后,则返回...
1. date.compareto()
java.util.date提供了在java中比较两个日期的经典方法compareto()。
- 如果两个日期相等,则返回值为0。
- 如果date在date参数之后,则返回值大于0。
- 如果date在date参数之前,则返回值小于0。
@test
void testdatecompare() throws parseexception {
simpledateformat sdf = new simpledateformat("yyyy-mm-dd");
date date1 = sdf.parse("2009-12-31");
date date2 = sdf.parse("2019-01-31");
system.out.println("date1 : " + sdf.format(date1));
system.out.println("date2 : " + sdf.format(date2));
if (date1.compareto(date2) > 0) {
system.out.println("date1 时间在 date2 之后");
} else if (date1.compareto(date2) < 0) {
system.out.println("date1 时间在 date2 之前");
} else if (date1.compareto(date2) == 0) {
system.out.println("date1 时间与 date2 相等");
} else {
system.out.println("程序怎么会运行到这里?正常应该不会");
}
}
输出结果:
date1 : 2009-12-31
date2 : 2019-01-31
date1 时间在 date2 之前
2. date.before(),date.after()和date.equals()
一种语义上比较友好的方法来比较两个java.util.date
@test
void testdatecompare2() throws parseexception {
simpledateformat sdf = new simpledateformat("yyyy-mm-dd");
date date1 = sdf.parse("2009-12-31");
date date2 = sdf.parse("2019-01-31");
system.out.println("date1 : " + sdf.format(date1));
system.out.println("date2 : " + sdf.format(date2));
if (date1.after(date2)) {
system.out.println("date1 时间在 date2 之后");
}
if (date1.before(date2)) {
system.out.println("date1 时间在 date2 之前");
}
if (date1.equals(date2)) {
system.out.println("date1 时间与 date2 相等");
}
}
输出结果
date1 : 2009-12-31
date2 : 2019-01-31
date1 时间在 date2 之前
3. calender.before(),calender.after()和calender.equals()
使用java.util.calendar比较两个date日期
@test
void testdatecompare3() throws parseexception {
simpledateformat sdf = new simpledateformat("yyyy-mm-dd");
date date1 = sdf.parse("2009-12-31");
date date2 = sdf.parse("2019-01-31");
system.out.println("date1 : " + sdf.format(date1));
system.out.println("date2 : " + sdf.format(date2));
calendar cal1 = calendar.getinstance();
calendar cal2 = calendar.getinstance();
cal1.settime(date1);
cal2.settime(date2);
if (cal1.after(cal2)) {
system.out.println("date1 时间在 date2 之后");
}
if (cal1.before(cal2)) {
system.out.println("date1 时间在 date2 之前");
}
if (cal1.equals(cal2)) {
system.out.println("date1 时间与 date2 相等");
}
}
输出结果:
date1 : 2009-12-31
date2 : 2019-01-31
date1 时间在 date2 之前
4. java 8日期比较方法
在java 8中,可以使用新的isbefore(),isafter(),isequal()和compareto()来比较localdate,localtime和localdatetime。以下示例以比较两个java.time.localdate
@test
void testdatecompare4() throws parseexception {
datetimeformatter sdf = datetimeformatter.ofpattern("yyyy-mm-dd");
localdate date1 = localdate.of(2009, 12, 31);
localdate date2 = localdate.of(2019, 1, 31);
system.out.println("date1 : " + sdf.format(date1));
system.out.println("date2 : " + sdf.format(date2));
system.out.println("is...");
if (date1.isafter(date2)) {
system.out.println("date1 时间在 date2 之后");
}
if (date1.isbefore(date2)) {
system.out.println("date1 时间在 date2 之前");
}
if (date1.isequal(date2)) {
system.out.println("date1 时间与 date2 相等");
}
}
输出结果
date1 : 2009-12-31
date2 : 2019-01-31
is...
date1 时间在 date2 之前
上一篇: 谈谈“底层微商”如何咸鱼翻身
下一篇: c#线程池中的异常