我的代码的输出是0,0,0。我期待0,-1,1代替。代码中有什么问题?为什么我不能从DateTime中添加或减去秒数?如何在Joda Time中正确比较DateTime或MutableDateTime对象?
public static void main(String[]args){
DateTime dt1 = new DateTime();
DateTime dt2 = new DateTime(dt1); // dt2 = dt1
DateTime dt3 = new DateTime(dt1); // dt3 < dt1
DateTime dt4 = new DateTime(dt1); // dt4 > dt1
dt3.minusSeconds(10);
dt4.plusSeconds(10);
int result1 = dt1.compareTo(dt2);
int result2 = dt1.compareTo(dt3);
int result3 = dt1.compareTo(dt4);
System.out.println("Results " + result1 + " , " + result2 + " , " + result3);
}
尝试使用MutableDateTime执行相同的代码。 API说DateTime是不可变的。 API - DateTime是线程安全且不可变的,前提是年代学也是如此。所有提供的标准Chronology类都是线程安全和不可变的。也阅读 - http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTime.html#minusDays%28int%29 – 2013-03-12 08:17:46
随着MutableDateTime你想使用添加,而不是加号。 – 2013-03-12 08:18:31
@JonSkeet - 是的。但是,我在MutableDateTime中看不到类似minusSeconds()的方法。这是为什么?我现在该怎么做呢? – 2013-03-12 08:22:49