我試圖計算兩個日期對象之間在幾分鐘內的持續時間。從兩個Date對象計算錯誤時間以計算持續時間
我在我的研究中發現了一些靈感,來自this stackoverflow問題。一般來說,這似乎是正確的,但我正在遇到一個有趣的行爲,一個測試用例。
當我運行下面附加的源代碼(您可以簡單地複製過去它),它返回我66分鐘,而不是(正確的結果)6,我目前不明白爲什麼。也許我現在正在監督一些事情,你能告訴我它是什麼嗎?
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Test {
private SimpleDateFormat parserSDF = new SimpleDateFormat("MM/dd/yy HH:mm",
Locale.ENGLISH);
public static void main(String[] args) {
Test test = new Test();
Date begin = test.createDateFromString("10/25/09 1:54");
Date end = test.createDateFromString("10/25/09 2:00");
int duration = test.minutesDiff(begin, end);
//result is 66
System.out.println(duration);
}
public int minutesDiff(Date earlierDate, Date laterDate) {
if (earlierDate == null || laterDate == null)
return 0;
return (int) ((laterDate.getTime()/60000) - (earlierDate.getTime()/60000));
}
public Date createDateFromString(String dateString) {
Date date = null;
try {
date = parserSDF.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
}
我順便說一句知道存在這個喬達庫,它確實在計算這個東西更好的方式,但如果可能的話,我想留在沒有外部庫。
感謝您與我分享的每一個想法。
編輯:啊,這可能是因爲時鐘改變?時鐘改變是在2009年10月25日,時間從早上3點恢復到凌晨2點。這可能意味着,這個結果是正確的
我在這裏編譯並運行它:http://www.compileonline.com/compile_java_online.php它的工作 – giorashc
如果我運行該代碼,我得到6 –