如题。。麻烦给位了
Date date1 = 。。。;
Date date2 = 。。。;
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
cal1.set(Calendar.SECOND, 0);
cal1.set(Calendar.MILLISECOND, 0);
cal2.set(Calendar.SECOND, 0);
cal2.set(Calendar.MILLISECOND, 0);
//cal1.before(....)
//cal1.compareTo(...)
[code="java"]long diff = dateFirst.getTime() - dateLast.getTime();
[/code]
[code="java"]
public class Temp {
public static void main(String[] args) {
Date d1 = new Date();
Date d2 = new Date();
if (d1.before(d2)) {
System.out.println("d1 比 d2 早"
+ (d1.getMinutes() - d2.getMinutes()));
} else {
System.out
.println("d1 比 d2晚" + (d2.getMinutes() - d1.getMinutes()));
}
}
}
[/code]
不过, 最好使用 Calendar 来实现,需要的话,我可以给出 Calendar 的实现,而且这也是推荐的实现方法
Calendar cal = Calendar.getInstance();
cal.setTime(date);
再通过Calendar#set(int field, int value) 方法将不必要的时间设置为0
然后就可以通过Calendar#compareTo方法进行比较了
Date date1 = new Date(2011, 8, 22, 20, 19);
Date date2 = new Date(2011, 8, 22, 20, 18);
date1.compareTo(date2);
这个比较精确到秒,完全满足你要精确到分的要求。
8) 晕看来理解错误楼主意思了·
楼主说精确到秒?
是不是 2011-08-22 14:52:30 2011-08-22 14:52:29 精确到秒时这2个时间是相等的?不知道是不是这意思?
晕看来理解错误楼主意思了·
楼主说精确到分?
是不是 2011-08-22 14:52:30 2011-08-22 14:52:29 精确到分,这2个时间是相等的?不知道是不是这意思?
[code="java"] DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String s1 = df.format(date1);
String s2 = df.format(date2);
System.out.println(s1.compareTo(s2));[/code]
支持 ymmihw
[code="java"]
public static final SimpleDateFormat FORMAT = new SimpleDateFormat(
"yy/MM/dd HH:mm");
public static void compare(Date d1, Date d2) {
String str1 = FORMAT.format(d1);
System.out.println("str1: " + str1);
String str2 = FORMAT.format(d2);
System.out.println("str2: " + str2);
int result = str1.compareTo(str2);
if (result > 0) {
System.out.println(str1 + " 晚于 " + str2);
} else if (result == 0) {
System.out.println(str1 + " 等于 " + str2);
} else {
System.out.println(str1 + " 早于 " + str2);
}
}
public static void main(String[] args) {
Date d1 = new Date();
Date d2 = new Date(d1.getTime() + 70 * 1000);
compare(d1, d2);
}
[/code]
我这边运行的结果为:
str1: 11/08/22 21:23
str2: 11/08/22 21:24
11/08/22 21:23 早于 11/08/22 21:24
同理,若是将 d2 的值设为:new Date(d1.getTime() - 70 * 1000);
那么输出结果将为:
str1: 11/08/22 21:24
str2: 11/08/22 21:22
11/08/22 21:24 晚于 11/08/22 21:22
用org.apache.commons.lang.time.DateUtils
Date now = new Date( );
Date dtmTime = DateUtils.truncate(now, Calendar.MINUTE);
取整到分然后用compareTo比较
要么使用getTime()/60000取整后比较
getTime比较