我正在使用dateString1.compareTo(dateString2)
进行字符串比较,它基于每个字符的Unicode值进行字典比较,并返回一个整数。以下是代码示例。
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中比较日期,这种方法是否错误?
在我的测试中,我没有遇到过意外的结果。如果可以不用创建一个日期对象并在长时间运行的循环内进行比较,我是不想这么做的。
忍者编辑
从下面的答案中可以得出结论,如果日期格式为yyyyMMdd
,将字符串比较作为日期比较是没有问题的,但如果是其他格式,则会出现错误。
实际上,在我的代码中,我的日期字符串是yyyyMMdd
格式。(我在上面给出的示例中输入了错误的格式)。所以,我现在会让代码保持原状,并添加一些注释来证明我的决定。
但我现在看到像这样比较字符串非常有局限性,如果数据库管理员决定在今后更改日期格式,我将遇到错误,尽管我认为这不太可能发生。