【发布时间】:2011-11-01 20:37:52
【问题描述】:
背景:
在我的数据库表中,我有两个时间戳
timeStamp1 = 2011-08-23 14:57:26.662
timeStamp2 = 2011-08-23 14:57:26.9
当我执行“ORDER BY TIMESTAMP ASC”时,timeStamp2 被认为是更大的时间戳(这是正确的)。
要求:我需要得到这些时间戳的差异(timeStamp2 - timeStamp1)
我的实现:
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 毫秒。 我不确定我做错了什么。有什么建议吗?
【问题讨论】:
-
The answer should have been 232ms,真的 - 我得到 900-662 = 238。 -
如果它们作为时间戳存储在数据库中,为什么要将它们作为字符串转换为日期?只需将它们作为 Timestamp 实例,您将拥有两个可比较的日期,而无需解析任何字符串。见download.oracle.com/javase/6/docs/api/java/sql/…
-
Thomas- 是的,抱歉,这是一个错字。 238ms
标签: java date simpledateformat