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

В вашем формате, час «hh» в AM/PM (1-12). Мне непонятно, что именно вы пытаетесь выполнить, но, возможно, использование «HH» (час в день - 0-23) может дать вам результат, который вы ищете.

+0

ooops, это смущающая ошибка. –

+2

Не смущайся. SimpleDateFormat не является «простым» - имя довольно вводит в заблуждение. :-) – Rob

Смежные вопросы