2013-07-14 35 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