如何比较String格式的两个日期?

Kla*_*sos 8 java date jodatime

以String格式比较两个日期的最简单方法是什么?我需要知道是否date1在之前/之后date2.

String date1 = "2015-12-01";
String date2 = "2015-12-31";
Run Code Online (Sandbox Code Playgroud)

Mic*_*ski 12

对于更通用的方法,您可以将它们转换Date为定义格式的对象,然后使用适当的方法:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

Date date1 = format.parse(date1);
Date date2 = format.parse(date2);

if (date1.compareTo(date2) <= 0) {
    System.out.println("earlier");
}
Run Code Online (Sandbox Code Playgroud)


Dan*_*nov 6

在这种情况下,您可以只比较字符串date1.compareTo(date2)

编辑:但是,正确的方法是使用SimpleDateFormat

DateFormat f = new SimpleDateFormat("yyyy-mm-dd");
Date d1 = f.parse(date1, new ParsePosition(0));
Date d2 = f.parse(date2, new ParsePosition(0));
Run Code Online (Sandbox Code Playgroud)

然后比较日期:

d1.compareTo(d2);
Run Code Online (Sandbox Code Playgroud)

如果比较将返回负值d1之前d2,如果正d1为后d2

  • 当然可以。在给定的格式中,字母数字顺序等于时间顺序。 (2认同)