我知道Date
大多已棄用,但我仍然不時使用它(比使用Calendar
更少的代碼)。我遇到了一個真正奇怪的錯誤,我想知道是否有人可以向我解釋這一點。Java的Date類正在發生什麼?這是一個已知的錯誤?
該代碼,這增加24天到當前時間:
long nowL = System.currentTimeMillis();
Date now = new Date(nowL);
System.out.println("now = "+now);
Date future = new Date(nowL+ 24*24*60*60*1000);
System.out.println("future = "+future);
給出了這樣的正確的輸出:
現在=星期四06月11 10點50分09秒IDT 2009
future = Sun Jul 05 10:50:09 IDT 2009
while this code,which added 2 5天:
long nowL = System.currentTimeMillis();
Date now = new Date(nowL);
System.out.println("now = "+now);
Date future = new Date(nowL+ 25*24*60*60*1000);
System.out.println("future = "+future);
給出了這樣的輸出:
現在=週四6月11日10時51分25秒IDT 2009年
未來=太陽5月17日17點48分37秒IDT 2009年
我可以理解小時甚至幾天的差異,但任何人都可以解釋爲什麼加入太多毫秒導致回到?我很困惑。
很微妙 - 好斑點! – belugabob 2009-06-11 08:16:17