我正在计算两个时间戳之间的差异,其格式如下
2013-07-22 05:24:24.77
我使用以下方法计算两个时间戳之间的差异
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date resDate = sdf.parse(responseData.getTimestamp().toString());
Date reqDate = sdf.parse(requestData.getTimestamp().toString());
System.out.println("response-->"+responseData.getTimestamp());
System.out.println("request-->"+requestData.getTimestamp());
System.out.println("diff-->"+(resDate.getTime()-reqDate.getTime()));
在以下情况下,两个时间戳之间的差异为负。例如
回复日期:2013-07-22 05:24:24.77
申请日期:2013-07-22 05:24:24.663
结果是:
存在 - > -586
它应该减去类似“770-663”的内容,而不是将时间戳减去“77-663”。
任何人都可以建议我应该做出哪些改变,或者有其他办法吗?
提前致谢
答案 0 :(得分:5)
SSS
表示SimpleDateFormat 663>的毫秒数,而不是小数秒。但是Timestamp.toString
以yyyy-mm-dd hh:mm:ss.fffffffff
格式格式化时间戳,其中fffffffff
是小数秒。使用java.sql.Timestamp.valueOf(str)
解析Timestamp.toString
生成的内容