所以我使用dateString1.compareTo(dateString2)
which 根据每个字符的 Unicode 值与字符串进行字典比较,并返回一个 int。这是一个代码示例。
String dateString1 = "05-12-2012";
String dateString2 = "05-13-2012";
if (dateString1.compareTo(dateString2) <=0){
System.out.println("dateString1 is an earlier date than dateString2");
}
这是在 Java 中比较日期的错误方法吗?
在我的测试中,我没有遇到意外结果的情况。如果我不需要的话,我真的不想从字符串中创建一个 Date 对象,因为我在一个长时间运行的循环中执行此操作。
Ninja Edit
从下面的答案中收集到,如果日期是格式的,将日期作为字符串进行比较没有任何问题,yyyyMMdd
但如果它是任何其他格式,显然会导致错误。
我实际上yyyyMMdd
在我的实际代码中将日期字符串作为格式。(我在上面给出的示例中输入了错误的格式。)所以现在,我将保持代码不变,并添加几行注释来证明我的决定。
但是我现在看到,像这样比较字符串是非常有限的,如果 dba 决定在以后更改日期格式,我会遇到错误,而我认为这不会发生。