<分区>
所以我正在使用 dateString1.compareTo(dateString2)
,它根据每个字符的 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 对象,因为我是在一个长时间运行的循环中这样做的。
忍者编辑
从下面的答案中可以看出,如果日期采用 yyyyMMdd
格式,则将日期作为字符串进行比较没有错,但如果采用任何其他格式,则显然会导致错误。
在我的实际代码中,我的日期字符串实际上是 yyyyMMdd
格式。 (我在上面给出的示例中输入了错误的格式。)所以现在,我将保持代码不变,并添加几行注释来证明我的决定是正确的。
但我现在发现,像这样比较字符串非常有限,如果 dba 决定更改日期格式,我会遇到错误,但我认为这种情况不会发生。