如何比较日期 - 自定义格式“dd.MM.yyyy,HH:mm:ss”中的字符串与另一个?

时间:2013-07-14 21:03:06

标签: java date format

我必须相互检查自定义格式String中的2个日期"dd.MM.yyyy, HH:mm:ss"。 我怎样才能得到旧的?

例如:

String date1 = "05.02.2013, 13:38:14";
String date2 = "05.02.2013, 09:38:14";

有没有办法让date2进行比较?

3 个答案:

答案 0 :(得分:5)

我将简要介绍一下如何继续进行。 您需要先将这些日期字符串解析为Date对象。请使用DateFormat#parse(String)。 从这些字符串中获取Date对象后,可以使用Date#compareTo(Date)方法比较这些对象。

答案 1 :(得分:1)

您已拥有日期格式,请将其与SimpleDateFormat一起使用,然后compare使用已创建的Date个对象。

See demo here. 示例代码:

public static void main(String[] args)  Exception {
    String date1 = "05.02.2013, 13:38:14";
    String date2 = "05.02.2013, 09:38:14";
    System.out.println(getOlder(date1, date2)); // 05.02.2013, 13:38:14
    System.out.println(getOlder(date2, date1)); // 05.02.2013, 13:38:14
}

public static String getOlder(String one, String two) throws ParseException {
    Date dateOne = new SimpleDateFormat("dd.MM.yyyy, HH:mm:ss").parse(one);
    Date dateTwo = new SimpleDateFormat("dd.MM.yyyy, HH:mm:ss").parse(two);
    if (dateOne.compareTo(dateTwo) > -1) {
        return one; // or return dateOne;
    }
    return two; // or return dateTwo;
}

当然,上述方法会返回输入的最早日期字符串。您可以更改它(请参阅注释)以返回Date对象。

答案 2 :(得分:0)

日期和时间的校准总是很棘手,我强烈建议您使用适当的课程,您可能需要检查Joda Time

他们的类提供了诸如daysBetween之类的方法,可以为您提供所需的结果。

当然,您必须先解析String,然后首先为您提供一个表示此日期和时间的Object。