【发布时间】:2012-05-15 22:18:17
【问题描述】:
所以我使用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 格式。 (我在上面给出的示例中输入了错误的格式。)所以现在,我将保持代码不变,并添加几行 cmets 来证明我的决定。
但我现在发现,像这样比较字符串是非常有限的,如果 dba 决定在以后更改日期格式,我会遇到错误,我认为这不会发生。
【问题讨论】: