如何使用比较运算符比较Java中的日期?
示例:
date1是undefined
date2是30-10-2017
date3是31-10-2017
30-10-2018
小于date2
时,它返回false。如果日期小于另一个日期,我该如何返回true,否则返回false?
这是我的代码:
date3
以下是我目前的解决方案:
return (day < theDate.day) || (month < theDate.month) || (year < theDate.year);
答案 0 :(得分:0)
您不能直接使用关系运算符,但日期/时间类型通常会实现Comparable
。
因此,您应该可以date1.compareTo(date2) < 0
执行逻辑date1 < date2
。
答案 1 :(得分:0)
您应该使用boolean after(Date date)
或boolean before(Date date)
。
例如,date2.before(date3)
答案 2 :(得分:0)
LocalDate date1 = LocalDate.of(2017, 10, 30); // Year, month, day.
LocalDate date2 = LocalDate.of(2017, 10, 31);
LocalDate date3 = LocalDate.of(2018, 10, 30);
System.out.printf("%s before %s? %s%n", date1, date2, date1.isBefore(date2));
System.out.printf("%s before %s? %s%n", date2, date3, date3.isBefore(date3));
System.out.printf("%s before %s? %s%n", date3, date1, date3.isBefore(date1));
如果您想知道如何进行比较:
2017-09-30T13:05:01,000
,其中与相同长度的表示进行文本比较就足够了。模式如下: