我的代碼的輸出是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