1

我必须以String自定义格式检查 2 date"dd.MM.yyyy, HH:mm:ss"相互检查 2 个 date 。怎样才能买到老款?

例如 :

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

有没有办法date2比较?

4

3 回答 3

5

我将简要说明您应该如何进行。您需要首先将这些日期字符串解析为Date对象。为此使用DateFormat#parse(String)。从这些字符串中取出对象后Date,您可以使用方法比较这些对象Date#compareTo(Date)

于 2013-07-14T21:05:59.130 回答
1

您已经有了日期格式,使用它,SimpleDateFormat然后比较创建的Date对象。

在此处查看演示。示例代码:

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对象。

于 2013-07-14T21:10:56.823 回答
0

日期和时间的计算总是很棘手,我强烈建议为此使用适当的类,您可能需要为此检查Joda Time

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

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

于 2013-07-14T21:09:03.450 回答