SimpleDateFormat неправильно анализирует миллисекунды

Справочная информация:

В моей таблице базы данных у меня есть две отметки времени

timeStamp1 = 2011-08-23 14:57:26.662
timeStamp2 = 2011-08-23 14:57:26.9

Когда я выполняю «ORDER BY TIMESTAMP ASC», timeStamp2 считается большей временной меткой (что правильно).

Требование: Мне нужно получить разницу этих временных меток (timeStamp2 - timeStamp1)

My реализация:

public static String timeDifference(String now, String prev) {
    try {
        final Date currentParsed = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").parse(now);
        final Date previousParsed = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").parse(prev);
        long difference = currentParsed.getTime() - previousParsed.getTime();
        return "" + difference;
    } catch (ParseException e) {
        return "Unknown";
    }
}

Ответ должен был быть 238 мс, но возвращаемое значение - -653 мс. Я не уверен, что делаю не так. Есть предложения?

26
задан S.L. Barth - Reinstate Monica 6 August 2012 в 07:37
поделиться