2013-07-14 36 views
0

我寫一個程序,並發現了一個行爲,是艱難的,我聽不懂。 所以粘貼代碼java.util.date和長期意外的行爲

public class test { 

    public static void main(String args[]) throws ParseException { 
     DateFormat formatter = new SimpleDateFormat("hh:mm"); 
     Date systemTime2 = formatter.parse("10:36"); 
     Date systemTime1 = formatter.parse("12:00"); 
     System.out.println(getMinutesDifference(systemTime2, systemTime1)); 
     ; 
    } 
    private static Long getMinutesDifference(Date upperTime, Date lowerTime) { 
     System.out.println(upperTime.getTime()); 
     System.out.println(lowerTime.getTime()); 
     return (upperTime.getTime() - lowerTime.getTime())/(1000 * 60); 

    } 
} 

現在我得到的輸出是

66960000  
28800000 
636 

我期待一個負輸出。我無法理解這是爲什麼會發生。

回答

3

在您的格式,在AM/PM的 「HH」 小時(1-12)。我不清楚你到底想要完成什麼,但也許使用「HH」(0-23的小時)可能會給你你正在尋找的結果。

+0

哎呀,這是一個令人尷尬的錯誤。 –

+2

不要尷尬。 SimpleDateFormat不是'簡單' - 這個名字很具誤導性。 :-) – Rob