如何在Java中比较两个字符串日期?
我有两个字符串格式的日期,如下所示 -
String startDate = "2014/09/12 00:00";
String endDate = "2014/09/13 00:00";
我想确保开始日期应该小于结束日期。开始日期不应大于结束日期。
如何比较这两个日期并相应地返回布尔值?
我有两个字符串格式的日期,如下所示 -
String startDate = "2014/09/12 00:00";
String endDate = "2014/09/13 00:00";
我想确保开始日期应该小于结束日期。开始日期不应大于结束日期。
如何比较这两个日期并相应地返回布尔值?
将它们转换为实际对象,然后调用 。Date
before
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd h:m");
System.out.println(sdf.parse(startDate).before(sdf.parse(endDate)));
回想一下,这将引发 一个 ,因此您应该在此代码块中捕获它,或者将其声明为作为方法签名的一部分被抛出。parse
ParseException
这是一个完全有效的演示。有关日期格式,请参阅 - http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Dating {
public static void main(String[] args) {
String startDate = "2014/09/12 00:00";
String endDate = "2014/09/13 00:00";
try {
Date start = new SimpleDateFormat("yyyy/MM/dd HH:mm", Locale.ENGLISH)
.parse(startDate);
Date end = new SimpleDateFormat("yyyy/MM/dd HH:mm", Locale.ENGLISH)
.parse(endDate);
System.out.println(start);
System.out.println(end);
if (start.compareTo(end) > 0) {
System.out.println("start is after end");
} else if (start.compareTo(end) < 0) {
System.out.println("start is before end");
} else if (start.compareTo(end) == 0) {
System.out.println("start is equal to end");
} else {
System.out.println("Something weird happened...");
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}