因此,我使用的是dateString1.compareTo(dateString2)
,它基于每个字符的Unicode值对字符串进行字典式比较,并返回一个int值。这是一个代码示例。在Java中比较日期字符串
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决定将日期格式更改为道路,我将不会看到发生的情况。
看看这个问题由我问前段时间http://stackoverflow.com/questions/2592501/compare-dates-in-java – ant