我必须相互检查自定义格式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
进行比较?
答案 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。