【发布时间】:2018-12-28 16:03:53
【问题描述】:
我正在尝试以整数比较两个日期(例如,10-05-2018)。这两天的格式相同,首选的解决方案是没有Date 类型。我的想法是将日期倒写并将它们作为整数进行比较,这不能作为一个反例:10,09,2018 和 09,09,2018。还有其他想法吗?谢谢!
for (int i=0; i<date.length(); i++) {
date3 = date.charAt(i) + datum1;
date4 = date2.charAt(i) + date2;
}
if (datum3.compareTo(datum4)>0) {
return 1;
}
if ((datum3.compareTo(datum4)<0)) {
return -1;
}
return 0;
}
【问题讨论】:
-
欢迎来到 Stack Overflow!请使用tour(您将获得徽章!),环顾四周,并阅读help center,尤其是How do I ask a good question?,我还推荐Jon Skeet 的Writing the Perfect Question 和Question Checklist。
-
“我的想法是将日期倒写,并将它们作为整数进行比较......” 或者实际上,作为字符串。 “...这不是一个找到反例...” 是的,它有效(如果“向后”您的意思是年月日,并且您使用完整的年份和两位数月和日)。如果您不向我们展示反例,我们无法帮助您理解为什么“反例”似乎不起作用。
-
@T.J.Crowder 2018 年 10 月 9 日和 2018 年 9 月 9 日呢?
-
这就是为什么 ISO-8601 是一种真正的日期格式。 :)
-
“……没有 Date 类型”,这是一个绝妙的主意,因为
Date类的设计很糟糕而且已经过时了。我强烈建议您使用LocalDate类型和java.time, the modern Java date and time API 中的其他类。
标签: java date date-comparison