Background:

In my database table, I have two timestamps

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

When I do an "ORDER BY TIMESTAMP ASC", timeStamp2 is considered as the greater timestamp(which is correct).

Requirement: I need to get the difference of these timestamps (timeStamp2 - timeStamp1)

My implementation:

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"; } }

The answer should have been 238ms, but the value that is returned is -653ms. I'm not sure what I'm doing wrong. Any suggestions?